52 lines
2.2 KiB
C#
52 lines
2.2 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 UltraFSM<UpdateProcedureState> _fsm;
|
||
|
|
|
||
|
|
private void Start()
|
||
|
|
{
|
||
|
|
_fsm = GameApp.Fsm.Create<UpdateProcedureState>("Procedure");
|
||
|
|
_fsm.Register<ProcedureLauncherState>(UpdateProcedureState.ProcedureStart, false);
|
||
|
|
_fsm.Register<ProcedureGetGlobalInfoState>(UpdateProcedureState.ProcedureGetGlobalInfoState, false);
|
||
|
|
_fsm.Register<ProcedureGetAppVersionInfoState>(UpdateProcedureState.ProcedureGetAppVersionInfoState, false);
|
||
|
|
_fsm.Register<ProcedureUpdateStaticVersion>(UpdateProcedureState.ProcedureUpdateStaticVersion, false);
|
||
|
|
_fsm.Register<ProcedureUpdateManifest>(UpdateProcedureState.ProcedureUpdateManifest, false);
|
||
|
|
_fsm.Register<ProcedurePatchInit>(UpdateProcedureState.ProcedurePatchInit, false);
|
||
|
|
_fsm.Register<ProcedureCreateDownloader>(UpdateProcedureState.ProcedureCreateDownloader, false);
|
||
|
|
_fsm.Register<ProcedureDownloadWebFiles>(UpdateProcedureState.ProcedureDownloadWebFiles, false);
|
||
|
|
_fsm.Register<ProcedurePatchDone>(UpdateProcedureState.ProcedurePatchDone, false);
|
||
|
|
_fsm.Register<ProcedureClearCache>(UpdateProcedureState.ProcedureClearCache, false);
|
||
|
|
_fsm.Register<ProcedureLoadAssembly>(UpdateProcedureState.ProcedureLoadAssembly, false);
|
||
|
|
_fsm.Register<ProcedureGameLauncherState>(UpdateProcedureState.ProcedureGameLauncherState, false);
|
||
|
|
_fsm.SwitchState(UpdateProcedureState.ProcedureStart);
|
||
|
|
}
|
||
|
|
|
||
|
|
private void OnDestroy()
|
||
|
|
{
|
||
|
|
GameApp.Fsm.Destroy(_fsm);
|
||
|
|
_fsm = null;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|