57 lines
2.1 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|