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);
}
}
}