using UnityEngine; /// /// This script should be placed on a GameObject in each scene to ensure settings are properly loaded and applied /// public class SceneSettingsInitializer : MonoBehaviour { [Header("Auto-create GameSettingsManager")] [Tooltip("If true, will create a GameSettingsManager if one doesn't exist")] public bool createManagerIfMissing = true; [Header("Settings Manager Prefab")] [Tooltip("Optional: Assign a GameSettingsManager prefab to instantiate")] public GameObject settingsManagerPrefab; void Start() { // Check if GameSettingsManager exists if (GameSettingsManager.Instance == null && createManagerIfMissing) { GameObject settingsManagerGO; if (settingsManagerPrefab != null) { // Use the assigned prefab settingsManagerGO = Instantiate(settingsManagerPrefab); } else { // Create a new GameObject with GameSettingsManager settingsManagerGO = new GameObject("GameSettingsManager"); settingsManagerGO.AddComponent(); } Debug.Log("GameSettingsManager created for scene: " + UnityEngine.SceneManagement.SceneManager.GetActiveScene().name); } else if (GameSettingsManager.Instance != null) { // If it exists, refresh the settings for this scene GameSettingsManager.Instance.RefreshSettings(); Debug.Log("Settings refreshed for scene: " + UnityEngine.SceneManagement.SceneManager.GetActiveScene().name); } } }