CapersProject/Assets/02.Scripts/Ui/Tycoon/TycoonUiManager.cs

122 lines
3.6 KiB
C#
Raw Normal View History

using System.Collections.Generic;
using DG.Tweening;
using Sirenix.OdinInspector;
using UnityEngine;
using UnityEngine.UI;
namespace BlueWater.Uis
{
public class TycoonUiManager : Singleton<TycoonUiManager>
{
// Variables
#region Variables
[field: SerializeField]
public Canvas MainCanvas { get; private set; }
[field: SerializeField]
public GoldUi GoldUi { get; private set; }
[field: SerializeField]
public TycoonUpgradeUi TycoonUpgradeUi { get; private set; }
2024-07-08 06:02:12 +00:00
[field: SerializeField]
public TycoonManagementUi TycoonManagementUi { get; private set; }
[field: SerializeField]
public TycoonStageUi TycoonStageUi { get; private set; }
2024-07-08 06:02:12 +00:00
2024-10-28 09:09:18 +00:00
[field: SerializeField]
public ManualBook ManualBook { get; private set; }
2024-09-10 07:26:29 +00:00
// [field: SerializeField]
// public BrewingUi BrewingUi { get; private set; }
[SerializeField]
private Image _fadeImage;
#endregion
// Unity events
#region Unity events
protected override void OnAwake()
{
InitializeComponents();
}
private void Start()
{
EventManager.OnTycoonGameStarted += TycoonOpenEvent;
EventManager.OnTycoonGameOvered += TycoonClosedEvent;
2024-10-10 09:32:18 +00:00
EventManager.OnFadeInOut += FadeInOut;
}
private void OnDestroy()
{
if (Quitting) return;
EventManager.OnTycoonGameStarted -= TycoonOpenEvent;
EventManager.OnTycoonGameOvered -= TycoonClosedEvent;
2024-10-10 09:32:18 +00:00
EventManager.OnFadeInOut -= FadeInOut;
}
#endregion
// Initialize methods
#region Initialize methods
[Button("셋팅 초기화")]
private void InitializeComponents()
{
MainCanvas = GetComponent<Canvas>();
GoldUi = transform.Find("GoldUi").GetComponent<GoldUi>();
TycoonUpgradeUi = GetComponentInChildren<TycoonUpgradeUi>(true);
TycoonManagementUi = GetComponentInChildren<TycoonManagementUi>(true);
TycoonStageUi = GetComponentInChildren<TycoonStageUi>(true);
2024-09-10 07:26:29 +00:00
//BrewingUi = GetComponentInChildren<BrewingUi>(true);
2024-10-28 09:09:18 +00:00
ManualBook = GetComponentInChildren<ManualBook>(true);
_fadeImage = MainCanvas.transform.Find("FadeImage").GetComponent<Image>();
}
#endregion
// Methods
#region Methods
private void TycoonOpenEvent()
{
TycoonStageUi.TycoonOpenUi();
}
private void TycoonClosedEvent()
{
TycoonStageUi.TycoonClosedUi();
TycoonManagementUi.CookMenuUi.CookUi.TycoonClosed();
TycoonManagementUi.CookMenuUi.DailyFoodMenuUi.TycoonClosed();
}
public void FadeInOut(float fadeInTime, float fadeOutTime, Color? fadeColor = null, float delayAfterFadeIn = 0f)
{
var newColor = new Color(1f, 1f, 1f, 0f);
if (fadeColor != null)
{
newColor = (Color)fadeColor;
}
_fadeImage.color = newColor;
_fadeImage.enabled = true;
_fadeImage.DOFade(1f, fadeInTime).OnComplete(() =>
{
DOVirtual.DelayedCall(delayAfterFadeIn, () =>
{
_fadeImage.DOFade(0f, fadeOutTime).OnComplete(() =>
{
_fadeImage.enabled = false;
});
});
});
}
#endregion
}
}