using System.Collections.Generic; using DG.Tweening; using Sirenix.OdinInspector; using UnityEngine; using UnityEngine.UI; namespace BlueWater.Uis { public class TycoonUiManager : Singleton { // 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(); GoldUi = transform.Find("GoldUi").GetComponent(); TycoonUpgradeUi = GetComponentInChildren(true); TycoonManagementUi = GetComponentInChildren(true); TycoonStageUi = GetComponentInChildren(true); //BrewingUi = GetComponentInChildren(true); ManualBook = GetComponentInChildren(true); _fadeImage = MainCanvas.transform.Find("FadeImage").GetComponent(); } #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 } }