using System.Collections; using System.Collections.Generic; using UnityEngine; using Cysharp.Threading.Tasks; /// /// 版本检查状态 /// public class CheckVersionState : ILaunchState { private string versionUrl; // 版本检查结果 private LaunchUtility.UpdateType updateType; public string StateName => FirstPackLang.Instance.GetText(FirstPackLang.TextIndex.CheckVersion); public CheckVersionState(string versionUrl) { this.versionUrl = versionUrl; } public async UniTask OnEnter() { Debug.Log("进入版本检查状态"); // 使用硬编码索引设置当前状态 LaunchLoadingWin.Instance.SetCurrentState(FirstPackLang.TextIndex.CheckVersion); await LaunchLoadingWin.Instance.ShowProgressAsync(0.3f, 0.6f); } public async UniTask OnExecute() { Debug.Log("执行版本检查"); // 使用LaunchUtility检查版本更新 updateType = await LaunchUtility.CheckVersionUpdateAsync(versionUrl); // 根据版本检查结果更新提示 switch (updateType) { case LaunchUtility.UpdateType.None: LaunchLoadingWin.Instance.SetTip(FirstPackLang.Instance.GetText(FirstPackLang.TextIndex.LatestVersion)); break; case LaunchUtility.UpdateType.PatchUpdate: LaunchLoadingWin.Instance.SetTip(FirstPackLang.Instance.GetText(FirstPackLang.TextIndex.MinorUpdateDetected)); break; case LaunchUtility.UpdateType.MinorUpdate: LaunchLoadingWin.Instance.SetTip(FirstPackLang.Instance.GetText(FirstPackLang.TextIndex.MediumUpdateDetected)); break; case LaunchUtility.UpdateType.MajorUpdate: LaunchLoadingWin.Instance.SetTip(FirstPackLang.Instance.GetText(FirstPackLang.TextIndex.MajorUpdateDetected)); break; } await LaunchLoadingWin.Instance.ShowProgressAsync(0.3f, 0.7f); // 返回true表示该状态已完成,可以进入下一个状态 return true; } public async UniTask OnExit() { Debug.Log("退出版本检查状态"); await UniTask.CompletedTask; } /// /// 获取版本检查结果 /// public LaunchUtility.UpdateType GetUpdateType() { return updateType; } }