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() { _fadeImage = transform.Find("Canvas/FadeImage").GetComponent(); _fadeIn = _fadeImage.DOFade(1f, 2f).From(0f).Pause().SetAutoKill(false).OnComplete(MoveCombatScene); _fadeOut = _fadeImage.DOFade(0f, 2f).From(1f).Pause().SetAutoKill(false).SetDelay(1f); _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("02.Combat"); } private void OnSceneLoaded(Scene scene, LoadSceneMode mode) { if (scene.name == "02.Combat") { if (_isMovedCombatScene) { _fadeOut.Restart(); _isMovedCombatScene = false; } } } } }