AlicizaX/Client/Assets/Scripts/Startup/Framework/Procedure/PatchUpdater/ProcedurePatchInit.cs

45 lines
1.7 KiB
C#
Raw Normal View History

2025-01-23 19:06:48 +08:00
using Cysharp.Threading.Tasks;
using AlicizaX.Resource.Runtime;
using AlicizaX.Fsm.Runtime;
using AlicizaX.Procedure.Runtime;
using AlicizaX.Runtime;
using YooAsset;
namespace Unity.Startup.Procedure
{
internal sealed class ProcedurePatchInit : ProcedureBase
{
protected override async void OnEnter(IFsm<IProcedureManager> procedureOwner)
{
base.OnEnter(procedureOwner);
if (GameApp.Resource.GamePlayMode == EPlayMode.EditorSimulateMode)
{
await GameApp.Resource.InitPackageAsync(ResourceComponent.BuildInPackageName, string.Empty, string.Empty, true);
ChangeState<ProcedureUpdateStaticVersion>(procedureOwner);
return;
}
if (GameApp.Resource.GamePlayMode == EPlayMode.OfflinePlayMode)
{
Log.Info("当前为离线模式,直接启动 ProcedureUpdateStaticVersion");
await GameApp.Resource.InitPackageAsync(ResourceComponent.BuildInPackageName, string.Empty, string.Empty, true);
ChangeState<ProcedureUpdateStaticVersion>(procedureOwner);
return;
}
Start(procedureOwner);
}
async void Start(IFsm<IProcedureManager> procedureOwner)
{
string bundleUrl = GlobalConfig.PatchData.BundleUrl;
Log.Info("下载资源的路径:" + bundleUrl);
await GameApp.Resource.InitPackageAsync(ResourceComponent.BuildInPackageName, bundleUrl, bundleUrl, true);
procedureOwner.RemoveData(ResourceComponent.BuildInPackageName);
await UniTask.DelayFrame();
ChangeState<ProcedureUpdateStaticVersion>(procedureOwner);
}
}
}