97 lines
2.5 KiB (Stored with Git LFS)
C#
97 lines
2.5 KiB (Stored with Git LFS)
C#
using System.Threading.Tasks;
|
|
using DG.Tweening;
|
|
using Sirenix.OdinInspector;
|
|
using UnityEngine;
|
|
|
|
namespace DDD
|
|
{
|
|
public class UiManager : Singleton<UiManager>
|
|
{
|
|
[Title("연출")]
|
|
[SerializeField]
|
|
private float _fadeTime = 0.5f;
|
|
|
|
private GameObject _titlePanel;
|
|
|
|
private GameObject _fadePanel;
|
|
private CanvasGroup _fadeCanvasGroup;
|
|
|
|
private Tween _fadeIn;
|
|
private Tween _fadeOut;
|
|
|
|
protected override void OnAwake()
|
|
{
|
|
_titlePanel = transform.Find("TitlePanel").gameObject;
|
|
|
|
_fadePanel = transform.Find("FadePanel").gameObject;
|
|
_fadeCanvasGroup = _fadePanel.GetComponent<CanvasGroup>();
|
|
}
|
|
|
|
private void Start()
|
|
{
|
|
_titlePanel.SetActive(true);
|
|
|
|
_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(SceneType currentSceneType, SceneType changeSceneType)
|
|
{
|
|
if (currentSceneType == SceneType.Title)
|
|
{
|
|
_titlePanel.SetActive(false);
|
|
}
|
|
else if (currentSceneType == SceneType.Restaurant)
|
|
{
|
|
|
|
}
|
|
|
|
if (changeSceneType == SceneType.Title)
|
|
{
|
|
_titlePanel.SetActive(true);
|
|
}
|
|
else if (changeSceneType == SceneType.Restaurant)
|
|
{
|
|
|
|
}
|
|
}
|
|
}
|
|
} |