CapersProject/Assets/02.Scripts/SceneController.cs
2024-11-17 13:29:57 +09:00

64 lines
1.7 KiB
C#

using DG.Tweening;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
namespace BlueWater
{
public class SceneController : Singleton<SceneController>
{
[SerializeField]
private Image _fadeImage;
private Tween _fadeIn;
private Tween _fadeOut;
private bool _isMovedCombatScene;
protected override void OnAwake()
{
_fadeImage = transform.Find("Canvas/FadeImage").GetComponent<Image>();
_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;
}
}
}
}
}