| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- using UnityEngine;
- using UnityEngine.InputSystem;
- using System.Collections.Generic;
- public class GameManager : MonoBehaviour
- {
- public static GameManager Instance { get; private set; }
- [Header("Game State")]
- public bool isPaused = false;
- [Header("Systems")]
- public ResourceManager resourceManager;
- public TimeManager timeManager;
- public VillagerManager villagerManager;
- public SelectionManager selectionManager;
- void Awake()
- {
- // Singleton pattern
- if (Instance != null && Instance != this)
- {
- Destroy(gameObject);
- return;
- }
- Instance = this;
- DontDestroyOnLoad(gameObject);
- // Initialize systems
- InitializeSystems();
- }
- void InitializeSystems()
- {
- // Get or create system components
- resourceManager = GetComponent<ResourceManager>();
- if (resourceManager == null)
- resourceManager = gameObject.AddComponent<ResourceManager>();
- timeManager = GetComponent<TimeManager>();
- if (timeManager == null)
- timeManager = gameObject.AddComponent<TimeManager>();
- villagerManager = GetComponent<VillagerManager>();
- if (villagerManager == null)
- villagerManager = gameObject.AddComponent<VillagerManager>();
- selectionManager = GetComponent<SelectionManager>();
- if (selectionManager == null)
- selectionManager = gameObject.AddComponent<SelectionManager>();
- }
- void Start()
- {
- // Initialize starting resources
- resourceManager.AddResource(ResourceType.Wood, 50);
- resourceManager.AddResource(ResourceType.Stone, 30);
- resourceManager.AddResource(ResourceType.Food, 100);
- }
- void Update()
- {
- // Handle pause/unpause
- if (UnityEngine.InputSystem.Keyboard.current.spaceKey.wasPressedThisFrame)
- {
- TogglePause();
- }
- }
- public void TogglePause()
- {
- isPaused = !isPaused;
- timeManager.SetPaused(isPaused);
- }
- }
|