using UnityEngine;
///
/// This component provides instructions and utilities for setting up scenes properly
/// in the RPG RougeLiteBattler project.
///
public class SceneSetupGuide : MonoBehaviour
{
[Header("Scene Setup Instructions")]
[TextArea(10, 20)]
public string setupInstructions = @"SCENE SETUP GUIDE for RPG RougeLiteBattler
TITLE SCREEN SCENE:
1. Create an empty GameObject named 'TitleScreenManager'
2. Add UIDocument component and assign TitleScreen.uxml
3. Add TitleScreenManager script
4. Ensure TitleScreen.uxml has buttons with names:
- NewGameButton
- LoadGameButton
- QuitButton
MAIN TEAM SELECT SCENE:
1. Should already have MainTeamSelectScript on an object with UIDocument
2. Add navigation buttons to the UI Document:
- BackToTitleButton (to return to title)
- ProceedToBattleButton (to go to battle setup)
BATTLE SETUP SCENE:
1. Should already have BattleSetupMenu script
2. Add a 'Back to Team Select' button
3. Assign the button to backToTeamSelectButton field in BattleSetupMenu
BUILD SETTINGS:
The scenes should be added to Build Settings in this order:
0. TitleScreen
1. MainTeamSelectScene
2. BattleSetupMenu
3. BattleScene
4. MapMaker (optional)
TESTING:
- Start the game from TitleScreen scene
- Test navigation: Title -> Team Select -> Battle Setup -> Battle
- Test back buttons work correctly
- Test save/load functionality";
[Header("Current Scene Info")]
public string currentSceneName;
public bool hasRequiredComponents;
private void Start()
{
currentSceneName = UnityEngine.SceneManagement.SceneManager.GetActiveScene().name;
CheckSceneSetup();
}
private void CheckSceneSetup()
{
switch (currentSceneName)
{
case "TitleScreen":
CheckTitleScreenSetup();
break;
case "MainTeamSelectScene":
CheckTeamSelectSetup();
break;
case "BattleSetupMenu":
CheckBattleSetupSetup();
break;
default:
Debug.Log($"Scene setup guide not configured for scene: {currentSceneName}");
break;
}
}
private void CheckTitleScreenSetup()
{
TitleScreenManager manager = FindFirstObjectByType();
if (manager == null)
{
Debug.LogWarning("TitleScreenManager not found in scene! Please add it.");
hasRequiredComponents = false;
}
else
{
Debug.Log("✓ TitleScreenManager found");
hasRequiredComponents = true;
}
}
private void CheckTeamSelectSetup()
{
MainTeamSelectScript manager = FindFirstObjectByType();
if (manager == null)
{
Debug.LogWarning("MainTeamSelectScript not found in scene!");
hasRequiredComponents = false;
}
else
{
Debug.Log("✓ MainTeamSelectScript found");
hasRequiredComponents = true;
}
}
private void CheckBattleSetupSetup()
{
BattleSetupMenu manager = FindFirstObjectByType();
if (manager == null)
{
Debug.LogWarning("BattleSetupMenu not found in scene!");
hasRequiredComponents = false;
}
else
{
Debug.Log("✓ BattleSetupMenu found");
hasRequiredComponents = true;
}
}
[ContextMenu("Log Scene Setup Status")]
public void LogSceneSetupStatus()
{
Debug.Log($"Current Scene: {currentSceneName}");
Debug.Log($"Required Components Present: {hasRequiredComponents}");
Debug.Log("Setup Instructions:\n" + setupInstructions);
}
}