using System; using System.Threading.Tasks; using DG.Tweening; using Sirenix.OdinInspector; using UnityEngine; namespace DDD { public class UiManager : MonoBehaviour { [Title("연출")] [SerializeField] private float _fadeTime = 0.5f; private GameObject _titlePanel; private GameObject _fadePanel; private CanvasGroup _fadeCanvasGroup; private Tween _fadeIn; private Tween _fadeOut; private void Awake() { _titlePanel = transform.Find("TitlePanel").gameObject; _fadePanel = transform.Find("FadePanel").gameObject; _fadeCanvasGroup = _fadePanel.GetComponent(); } private void Start() { _fadePanel.SetActive(false); _fadeCanvasGroup.alpha = 0f; _fadeIn = _fadeCanvasGroup.DOFade(1f, _fadeTime).SetUpdate(true).SetAutoKill(false).Pause(); _fadeOut = _fadeCanvasGroup.DOFade(0f, _fadeTime).SetUpdate(true).SetAutoKill(false).Pause(); } private void OnDestroy() { _fadeIn?.Kill(); _fadeOut?.Kill(); } public async Task FadeIn() { if (_fadeIn == null) { Debug.LogWarning("FadeIn 트윈이 설정되지 않았습니다."); return; } _fadePanel.SetActive(true); _fadeIn.Restart(); await _fadeIn.AsyncWaitForCompletion(); } public async Task FadeOut() { if (_fadeOut == null) { Debug.LogWarning("FadeOut 트윈이 설정되지 않았습니다."); return; } _fadeOut.Restart(); await _fadeOut.AsyncWaitForCompletion(); _fadePanel.SetActive(false); } public void ChangeScene(string previousSceneName, string changeSceneName) { if (previousSceneName == "00.Title") { _titlePanel.SetActive(false); } else if (previousSceneName == "01.Restaurant") { } if (changeSceneName == "00.Title") { _titlePanel.SetActive(true); } else if (changeSceneName == "01.Restaurant") { } } } }