AlicizaX/Client/Assets/Scripts/Startup/Framework/Procedure/Procedure.cs
陈思海 5941a2cdb2 优化更新
1.精简框架核心代码
2.降低框架扩展功能的依赖耦合
3.更新高性能FSM结构
2025-09-05 20:06:35 +08:00

57 lines
2.1 KiB
C#

using System;
using UnityEngine;
namespace Unity.Startup.Procedure
{
public enum UpdateProcedureState : byte
{
ProcedureStart,
ProcedureGetGlobalInfoState,
ProcedureGetAppVersionInfoState,
ProcedureUpdateStaticVersion,
ProcedureUpdateManifest,
ProcedurePatchInit,
ProcedureCreateDownloader,
ProcedureDownloadWebFiles,
ProcedurePatchDone,
ProcedureClearCache,
ProcedureLoadAssembly,
ProcedureGameLauncherState
}
public class Procedure : MonoBehaviour
{
private SimpleFSM<UpdateProcedureState> _fsm;
private void Start()
{
_fsm = new SimpleFSM<UpdateProcedureState>();
_fsm.Register<ProcedureLauncherState>(UpdateProcedureState.ProcedureStart);
_fsm.Register<ProcedureGetGlobalInfoState>(UpdateProcedureState.ProcedureGetGlobalInfoState);
_fsm.Register<ProcedureGetAppVersionInfoState>(UpdateProcedureState.ProcedureGetAppVersionInfoState);
_fsm.Register<ProcedureUpdateStaticVersion>(UpdateProcedureState.ProcedureUpdateStaticVersion);
_fsm.Register<ProcedureUpdateManifest>(UpdateProcedureState.ProcedureUpdateManifest);
_fsm.Register<ProcedurePatchInit>(UpdateProcedureState.ProcedurePatchInit);
_fsm.Register<ProcedureCreateDownloader>(UpdateProcedureState.ProcedureCreateDownloader);
_fsm.Register<ProcedureDownloadWebFiles>(UpdateProcedureState.ProcedureDownloadWebFiles);
_fsm.Register<ProcedurePatchDone>(UpdateProcedureState.ProcedurePatchDone);
_fsm.Register<ProcedureClearCache>(UpdateProcedureState.ProcedureClearCache);
_fsm.Register<ProcedureLoadAssembly>(UpdateProcedureState.ProcedureLoadAssembly);
_fsm.Register<ProcedureGameLauncherState>(UpdateProcedureState.ProcedureGameLauncherState);
_fsm.SwitchState(UpdateProcedureState.ProcedureStart);
}
private void Update()
{
_fsm.Update(Time.deltaTime);
}
private void OnDestroy()
{
_fsm.Dispose();
_fsm = null;
}
}
}