122 lines
3.6 KiB
C#
122 lines
3.6 KiB
C#
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; }
|
|
|
|
[field: SerializeField]
|
|
public TycoonManagementUi TycoonManagementUi { get; private set; }
|
|
|
|
[field: SerializeField]
|
|
public TycoonStageUi TycoonStageUi { get; private set; }
|
|
|
|
[field: SerializeField]
|
|
public ManualBook ManualBook { get; private set; }
|
|
|
|
// [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;
|
|
EventManager.OnFadeInOut += FadeInOut;
|
|
}
|
|
|
|
private void OnDestroy()
|
|
{
|
|
if (Quitting) return;
|
|
|
|
EventManager.OnTycoonGameStarted -= TycoonOpenEvent;
|
|
EventManager.OnTycoonGameOvered -= TycoonClosedEvent;
|
|
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);
|
|
//BrewingUi = GetComponentInChildren<BrewingUi>(true);
|
|
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
|
|
}
|
|
} |