using cfg.ShowCfg; using Gameplay.SubSystems; using Gameplay; using PhxhSDK; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using Cysharp.Threading.Tasks; using UnityEngine; using static Gameplay.CommonUtils; public class RaffleManager : Singlenton { /// /// 进度 /// private enum E_Process { None = 0, /// /// 加载场景 /// LoadingScene, /// /// 加载UI /// LoadingUI, /// /// 刷新抽卡 /// RefreshRaffle, /// /// 当前 /// Present, } public RaffleManager() { } private E_Process curProcess = E_Process.None; /// /// 进入抽卡 /// public async void EnterRaffle() { UIManager.Instance.HideAllUI(); curProcess = E_Process.LoadingScene; LoadingExecutorWithUILoadingController loadingExecutor = new() { getProgress = GetLoadingProcess }; LoadingExecutorManager.Instance.ExecuteLoading(loadingExecutor).Forget(); UISceneResult uiSceneResult = await OpenUIWithScene(UINameConst.UI_DrawMain, Framework.Constants.RAFFLE_SCENE_PATH, null, false); //curProcess = E_Process.RefreshRaffle; curProcess = E_Process.Present; } /// /// 退出抽卡 /// public async void ExitRaffle() { await CloseUIWithScene(UINameConst.UI_DrawMain); curProcess = E_Process.None; } /// /// 获取加载进度 /// /// 0f-100f private float GetLoadingProcess() { return curProcess switch { E_Process.None => 0f, E_Process.LoadingScene => GameSceneManager.Instance.GetSceneLoadingProgress(Framework.Constants.CAMP_SCENE_PATH) * 0.5f, E_Process.LoadingUI => 60f, //E_Process.RefreshRaffle => 60f + ShowManager.Instance.GetRefreshProcess(E_ShowSceneType.Camp) * 40f, E_Process.Present => 100f, _ => 0f, }; } }