GameInitializer.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using UnityEngine;
  2. public class GameInitializer : MonoBehaviour
  3. {
  4. [Header("Manager Prefabs")]
  5. public GameObject gameStateManagerPrefab;
  6. public GameObject sceneNavigationManagerPrefab;
  7. private void Awake()
  8. {
  9. // Initialize core game managers if they don't exist
  10. InitializeManagers();
  11. }
  12. private void InitializeManagers()
  13. {
  14. // Initialize GameStateManager
  15. if (GameStateManager.Instance == null)
  16. {
  17. if (gameStateManagerPrefab != null)
  18. {
  19. Instantiate(gameStateManagerPrefab);
  20. }
  21. else
  22. {
  23. // Create a basic GameStateManager if no prefab is provided
  24. GameObject gameStateObj = new GameObject("GameStateManager");
  25. gameStateObj.AddComponent<GameStateManager>();
  26. }
  27. }
  28. // Initialize SceneNavigationManager
  29. if (SceneNavigationManager.Instance == null)
  30. {
  31. if (sceneNavigationManagerPrefab != null)
  32. {
  33. Instantiate(sceneNavigationManagerPrefab);
  34. }
  35. else
  36. {
  37. // Create a basic SceneNavigationManager if no prefab is provided
  38. GameObject sceneNavObj = new GameObject("SceneNavigationManager");
  39. sceneNavObj.AddComponent<SceneNavigationManager>();
  40. }
  41. }
  42. }
  43. }