using DG.Tweening; using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; namespace BlueWater { 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, 2f).From(0f).SetUpdate(true).SetAutoKill(false).Pause().OnComplete(MoveCombatScene); _fadeOut = _fadeImage.DOFade(0f, 2f).From(1f).SetUpdate(true).SetAutoKill(false).Pause().SetDelay(3f).OnComplete(EventManager.InvokeInitializedPlayerInput); _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(); _fadeIn.Kill(); } public void FadeIn() { _fadeIn.Restart(); } private void MoveCombatScene() { _isMovedCombatScene = true; SceneManager.LoadScene("01.Tycoon"); } private void OnSceneLoaded(Scene scene, LoadSceneMode mode) { if (scene.name == "01.Tycoon") { if (_isMovedCombatScene) { _fadeOut.Restart(); _isMovedCombatScene = false; } } } } }