using UnityEngine; using UnityEngine.SceneManagement; namespace RR.Common.Settings { /// /// Готовые методы для кнопок настроек. /// Эти методы можно вызывать из UnityEvent в SettingsDatabase через Inspector. /// public class SettingsButtonActions : MonoBehaviour { public static SettingsButtonActions Instance { get; private set; } private void Awake() { if (Instance == null) { Instance = this; DontDestroyOnLoad(gameObject); } else { Destroy(gameObject); } } /// /// Сбросить все настройки к значениям по умолчанию /// public void ResetAllSettings() { if (SettingsManager.Instance) { SettingsManager.Instance.ResetAllToDefaults(); } } /// /// Выход из игры /// public void QuitGame() { #if UNITY_EDITOR UnityEditor.EditorApplication.isPlaying = false; #else Application.Quit(); #endif } /// /// Загрузить главное меню /// public void LoadMainMenu() { LoadScene("MainMenu"); } /// /// Загрузить сцену по имени /// public void LoadScene(string sceneName) { if (!string.IsNullOrEmpty(sceneName)) { SceneManager.LoadScene(sceneName); } } /// /// Открыть URL в браузере /// public void OpenURL(string url) { if (!string.IsNullOrEmpty(url)) { Application.OpenURL(url); } } /// /// Открыть папку с сохранениями /// public void OpenSavesFolder() { string path = Application.persistentDataPath; Application.OpenURL($"file://{path}"); } /// /// Перезагрузить текущую сцену /// public void ReloadCurrentScene() { Scene currentScene = SceneManager.GetActiveScene(); SceneManager.LoadScene(currentScene.name); } /// /// Применить все настройки заново /// public void ApplyAllSettings() { if (SettingsManager.Instance) { SettingsManager.Instance.ApplyAll(); } } } }