using DG.Tweening; using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; namespace BlueWater { public static class SceneName { public static string CombatTile = "00.CombatTitle"; public static string TycoonTile = "00.TycoonTitle"; public static string Tycoon = "01.Tycoon"; public static string Combat = "02.Combat"; } public class SceneController : Singleton { [SerializeField] private Image _fadeImage; private Tween _fadeIn; private Tween _fadeOut; private bool _isMovedCombatScene; protected override void OnAwake() { _fadeIn = _fadeImage.DOFade(1f, 1f).From(0f).SetUpdate(true).SetAutoKill(false).Pause().OnComplete(MoveCombatScene); _fadeOut = _fadeImage.DOFade(0f, 0.5f).From(1f).SetUpdate(true).SetAutoKill(false).Pause().SetDelay(3f); _fadeImage.color = new Color(0, 0, 0, 0); } private void Start() { SceneManager.sceneLoaded += OnSceneLoaded; } private void OnDestroy() { if (Quitting) return; SceneManager.sceneLoaded -= OnSceneLoaded; _fadeIn.Kill(); _fadeOut.Kill(); } public void FadeIn() { _fadeIn.Restart(); } public void RestartCurrentScene() { VisualFeedbackManager.Instance.ResetTimeScale(); string currentSceneName = SceneManager.GetActiveScene().name; SceneManager.LoadScene(currentSceneName); } public void LoadScene(string sceneName) { VisualFeedbackManager.Instance.ResetTimeScale(); SceneManager.LoadScene(sceneName); } public void MoveMainMenu() { VisualFeedbackManager.Instance.ResetTimeScale(); SceneManager.LoadScene("00.TycoonTitle"); } private void MoveCombatScene() { _isMovedCombatScene = true; SceneManager.LoadScene("01.Tycoon"); } private void OnSceneLoaded(Scene scene, LoadSceneMode mode) { PopupUiController.ClearPopup(); if (scene.name == "01.Tycoon") { if (_isMovedCombatScene) { _fadeOut.Restart(); _isMovedCombatScene = false; } } } } }