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

57 lines
2.1 KiB
C#
Raw Normal View History

2025-04-28 19:45:45 +08:00
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;
2025-04-28 19:45:45 +08:00
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);
2025-04-28 19:45:45 +08:00
_fsm.SwitchState(UpdateProcedureState.ProcedureStart);
}
private void Update()
{
_fsm.Update(Time.deltaTime);
}
2025-04-28 19:45:45 +08:00
private void OnDestroy()
{
_fsm.Dispose();
2025-04-28 19:45:45 +08:00
_fsm = null;
}
}
}