using System.Threading.Tasks; using asap.core; using EventCubeMelt; using EventCubeMelt.UI; using GameCore; using UnityEngine; //- 新版本的BlockAct public class EventBlockAct :AGameAct { private EventCubeMeltManager _thisEventManager; public override async Task StartAsync() { _thisEventManager = GContext.container.Resolve(); await _thisEventManager.PrepareData(); await ShowUI(); var ret = await base.StartAsync(); GContext.Publish(new EventBlockLoadingFinished()); return ret; } private async Task ShowUI() { await Awaiters.NextFrame; ELog($"ShowUI {_thisEventManager.EventCubeMeltMainData.UIPanel}"); var uiPanel = new UIType(_thisEventManager.EventCubeMeltMainData.UIPanel); await UIManager.Instance.ShowUI(uiPanel); } public override async Task StopAsync() { UIManager.Instance.DestroyUI(_thisEventManager.EventCubeMeltMainData.CompletePanel); UIManager.Instance.DestroyUI(_thisEventManager.EventCubeMeltMainData.UIPanel); await base.StopAsync(); } protected override void OnDestroy() { } #region LOG private static void LogWarning(string message) { Debug.LogWarning($"{nameof(EventBlockAct)} => {message}"); } private static void LogError(string message) { Debug.LogError($"{nameof(EventBlockAct)} => {message}"); } private static void ELog(string message) { #if UNITY_EDITOR if (!EventCubeMeltLogPolicy.EnableELog) return; Debug.Log($"{nameof(EventBlockAct)} => {message}"); #endif } #endregion }