增加procedure模块
This commit is contained in:
parent
6b282e8d1d
commit
88c8022c4d
@ -79,7 +79,7 @@ MonoBehaviour:
|
|||||||
m_BlockingObjects: 0
|
m_BlockingObjects: 0
|
||||||
m_BlockingMask:
|
m_BlockingMask:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_Bits: 55
|
m_Bits: 4294967295
|
||||||
--- !u!114 &1744287959665422355
|
--- !u!114 &1744287959665422355
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|||||||
@ -86,7 +86,7 @@ MonoBehaviour:
|
|||||||
m_BlockingObjects: 0
|
m_BlockingObjects: 0
|
||||||
m_BlockingMask:
|
m_BlockingMask:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_Bits: 55
|
m_Bits: 4294967295
|
||||||
--- !u!114 &1590262444720639052
|
--- !u!114 &1590262444720639052
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|||||||
@ -27,6 +27,7 @@ public class UILoadUpdate : UITabWindow<ui_UILoadUpdateWindow>
|
|||||||
|
|
||||||
private void OnHandleTestUIOpenEevent(TestUIOpenEvent obj)
|
private void OnHandleTestUIOpenEevent(TestUIOpenEvent obj)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CreateTest()
|
private void CreateTest()
|
||||||
|
|||||||
@ -6,7 +6,7 @@ using YooAsset;
|
|||||||
|
|
||||||
namespace Unity.Startup.Procedure
|
namespace Unity.Startup.Procedure
|
||||||
{
|
{
|
||||||
internal sealed class ProcedureDownloadBundleState : StateBase<UpdateProcedureState>
|
internal sealed class ProcedureDownloadBundleState : ProcedureBase
|
||||||
{
|
{
|
||||||
ResourceDownloaderOperation downloader;
|
ResourceDownloaderOperation downloader;
|
||||||
|
|
||||||
@ -15,7 +15,7 @@ namespace Unity.Startup.Procedure
|
|||||||
CreateDownloader();
|
CreateDownloader();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnExit()
|
protected override void OnLeave()
|
||||||
{
|
{
|
||||||
downloader.CancelDownload();
|
downloader.CancelDownload();
|
||||||
downloader = null;
|
downloader = null;
|
||||||
@ -27,7 +27,7 @@ namespace Unity.Startup.Procedure
|
|||||||
if (downloader.TotalDownloadCount == 0)
|
if (downloader.TotalDownloadCount == 0)
|
||||||
{
|
{
|
||||||
Log.Info("没有发现需要下载的资源");
|
Log.Info("没有发现需要下载的资源");
|
||||||
SwitchState(UpdateProcedureState.ProcedurePatchDoneState);
|
SwitchProcedure<ProcedurePatchDoneState>();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -66,7 +66,7 @@ namespace Unity.Startup.Procedure
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
SwitchState(UpdateProcedureState.ProcedurePatchDoneState);
|
SwitchProcedure<ProcedurePatchDoneState>();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnDownloadProgressCallback(DownloadUpdateData data)
|
private void OnDownloadProgressCallback(DownloadUpdateData data)
|
||||||
|
|||||||
@ -10,14 +10,14 @@ namespace Unity.Startup.Procedure
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 启动游戏
|
/// 启动游戏
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class ProcedureEntryState : StateBase<UpdateProcedureState>
|
public class ProcedureEntryState : ProcedureBase
|
||||||
{
|
{
|
||||||
protected override void OnEnter()
|
protected override void OnEnter()
|
||||||
{
|
{
|
||||||
LauncherUIHandler.Start();
|
LauncherUIHandler.Start();
|
||||||
if (GameApp.Resource.PlayMode == EPlayMode.OfflinePlayMode || GameApp.Resource.PlayMode == EPlayMode.EditorSimulateMode)
|
if (GameApp.Resource.PlayMode == EPlayMode.OfflinePlayMode || GameApp.Resource.PlayMode == EPlayMode.EditorSimulateMode)
|
||||||
{
|
{
|
||||||
SwitchState(UpdateProcedureState.ProcedureInitPackageState);
|
SwitchProcedure<ProcedureInitPackageState>();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -31,7 +31,7 @@ namespace Unity.Startup.Procedure
|
|||||||
if (GameApp.Resource.PlayMode == EPlayMode.WebPlayMode)
|
if (GameApp.Resource.PlayMode == EPlayMode.WebPlayMode)
|
||||||
{
|
{
|
||||||
HttpHelper.CDNUrl = "http://127.0.0.1:8080/CDN/WebGL";
|
HttpHelper.CDNUrl = "http://127.0.0.1:8080/CDN/WebGL";
|
||||||
SwitchState(UpdateProcedureState.ProcedureInitPackageState);
|
SwitchProcedure<ProcedureInitPackageState>();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -43,7 +43,7 @@ namespace Unity.Startup.Procedure
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
await HttpHelper.GetRemoteVersion();
|
await HttpHelper.GetRemoteVersion();
|
||||||
SwitchState(UpdateProcedureState.ProcedureGetAppVersionInfoState);
|
SwitchProcedure<ProcedureGetAppVersionInfoState>();
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -9,7 +9,7 @@ namespace Unity.Startup.Procedure
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取版本信息
|
/// 获取版本信息
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public sealed class ProcedureGetAppVersionInfoState : StateBase<UpdateProcedureState>
|
public sealed class ProcedureGetAppVersionInfoState : ProcedureBase
|
||||||
{
|
{
|
||||||
protected override void OnEnter()
|
protected override void OnEnter()
|
||||||
{
|
{
|
||||||
@ -34,8 +34,7 @@ namespace Unity.Startup.Procedure
|
|||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
SwitchProcedure<ProcedureInitPackageState>();
|
||||||
SwitchState(UpdateProcedureState.ProcedureInitPackageState);
|
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -4,7 +4,7 @@ using YooAsset;
|
|||||||
|
|
||||||
namespace Unity.Startup.Procedure
|
namespace Unity.Startup.Procedure
|
||||||
{
|
{
|
||||||
internal sealed class ProcedureInitPackageState : StateBase<UpdateProcedureState>
|
internal sealed class ProcedureInitPackageState : ProcedureBase
|
||||||
{
|
{
|
||||||
private int maxFailedCount = 0;
|
private int maxFailedCount = 0;
|
||||||
|
|
||||||
@ -66,11 +66,10 @@ namespace Unity.Startup.Procedure
|
|||||||
{
|
{
|
||||||
if (GameApp.Resource.PlayMode == EPlayMode.OfflinePlayMode)
|
if (GameApp.Resource.PlayMode == EPlayMode.OfflinePlayMode)
|
||||||
{
|
{
|
||||||
SwitchState(UpdateProcedureState.ProcedurePatchDoneState);
|
SwitchProcedure<ProcedurePatchDoneState>();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
SwitchProcedure<ProcedureDownloadBundleState>();
|
||||||
SwitchState(UpdateProcedureState.ProcedureDownloadBundleState);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -12,7 +12,7 @@ using HybridCLR;
|
|||||||
|
|
||||||
namespace Unity.Startup.Procedure
|
namespace Unity.Startup.Procedure
|
||||||
{
|
{
|
||||||
public sealed class ProcedureLoadAssembly : StateBase<UpdateProcedureState>
|
public sealed class ProcedureLoadAssembly : ProcedureBase
|
||||||
{
|
{
|
||||||
#if ENABLE_HYBRIDCLR
|
#if ENABLE_HYBRIDCLR
|
||||||
private int m_LoadAssetCount;
|
private int m_LoadAssetCount;
|
||||||
@ -33,7 +33,7 @@ namespace Unity.Startup.Procedure
|
|||||||
protected override void OnEnter()
|
protected override void OnEnter()
|
||||||
{
|
{
|
||||||
#if !ENABLE_HYBRIDCLR
|
#if !ENABLE_HYBRIDCLR
|
||||||
SwitchState(UpdateProcedureState.ProcedureUpdateFinishState);
|
SwitchProcedure<ProcedureUpdateFinishState>();
|
||||||
return;
|
return;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -78,7 +78,7 @@ namespace Unity.Startup.Procedure
|
|||||||
|
|
||||||
#if ENABLE_HYBRIDCLR
|
#if ENABLE_HYBRIDCLR
|
||||||
|
|
||||||
protected override void OnUpdate(float deltaTime)
|
protected override void OnUpdate()
|
||||||
{
|
{
|
||||||
if (!m_LoadAssemblyComplete)
|
if (!m_LoadAssemblyComplete)
|
||||||
{
|
{
|
||||||
@ -95,7 +95,7 @@ namespace Unity.Startup.Procedure
|
|||||||
|
|
||||||
private void AllAssemblyLoadComplete()
|
private void AllAssemblyLoadComplete()
|
||||||
{
|
{
|
||||||
SwitchState(UpdateProcedureState.ProcedureUpdateFinishState);
|
SwitchProcedure<ProcedureUpdateFinishState>();
|
||||||
|
|
||||||
if (m_MainLogicAssembly == null)
|
if (m_MainLogicAssembly == null)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -6,7 +6,7 @@ using YooAsset;
|
|||||||
|
|
||||||
namespace Unity.Startup.Procedure
|
namespace Unity.Startup.Procedure
|
||||||
{
|
{
|
||||||
internal sealed class ProcedurePatchDoneState : StateBase<UpdateProcedureState>
|
internal sealed class ProcedurePatchDoneState : ProcedureBase
|
||||||
{
|
{
|
||||||
protected override void OnEnter()
|
protected override void OnEnter()
|
||||||
{
|
{
|
||||||
@ -18,7 +18,7 @@ namespace Unity.Startup.Procedure
|
|||||||
private void ClearCacheCompleted(AsyncOperationBase obj)
|
private void ClearCacheCompleted(AsyncOperationBase obj)
|
||||||
{
|
{
|
||||||
Log.Info($"清理包裹缓存完成");
|
Log.Info($"清理包裹缓存完成");
|
||||||
SwitchState(UpdateProcedureState.ProcedureLoadAssembly);
|
SwitchProcedure<ProcedureLoadAssembly>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,19 +1,19 @@
|
|||||||
using Cysharp.Threading.Tasks;
|
|
||||||
using AlicizaX.Fsm.Runtime;
|
|
||||||
using UnityEngine;
|
using AlicizaX;
|
||||||
using YooAsset;
|
|
||||||
|
|
||||||
namespace Unity.Startup.Procedure
|
namespace Unity.Startup.Procedure
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 启动热更新游戏
|
/// 启动热更新游戏
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public sealed class ProcedureUpdateFinishState : StateBase<UpdateProcedureState>
|
public sealed class ProcedureUpdateFinishState : ProcedureBase
|
||||||
{
|
{
|
||||||
protected override void OnEnter()
|
protected override void OnEnter()
|
||||||
{
|
{
|
||||||
base.OnEnter();
|
base.OnEnter();
|
||||||
LauncherUIHandler.Dispose();
|
LauncherUIHandler.Dispose();
|
||||||
|
GameApp.Procedure.ClearAllProcedures();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,48 +0,0 @@
|
|||||||
using System;
|
|
||||||
using Cysharp.Threading.Tasks;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
|
|
||||||
namespace Unity.Startup.Procedure
|
|
||||||
{
|
|
||||||
public enum UpdateProcedureState : byte
|
|
||||||
{
|
|
||||||
ProcedureEntryState,
|
|
||||||
ProcedureGetAppVersionInfoState,
|
|
||||||
ProcedureInitPackageState,
|
|
||||||
ProcedureDownloadBundleState,
|
|
||||||
ProcedurePatchDoneState,
|
|
||||||
ProcedureLoadAssembly,
|
|
||||||
ProcedureUpdateFinishState
|
|
||||||
}
|
|
||||||
|
|
||||||
public class Procedure : MonoBehaviour
|
|
||||||
{
|
|
||||||
private SimpleFSM<UpdateProcedureState> _fsm;
|
|
||||||
|
|
||||||
private async UniTaskVoid Start()
|
|
||||||
{
|
|
||||||
await UniTask.WaitUntil(() => YooAsset.YooAssets.Initialized);
|
|
||||||
_fsm = new SimpleFSM<UpdateProcedureState>();
|
|
||||||
_fsm.Register<ProcedureEntryState>(UpdateProcedureState.ProcedureEntryState);
|
|
||||||
_fsm.Register<ProcedureGetAppVersionInfoState>(UpdateProcedureState.ProcedureGetAppVersionInfoState);
|
|
||||||
_fsm.Register<ProcedureInitPackageState>(UpdateProcedureState.ProcedureInitPackageState);
|
|
||||||
_fsm.Register<ProcedureDownloadBundleState>(UpdateProcedureState.ProcedureDownloadBundleState);
|
|
||||||
_fsm.Register<ProcedurePatchDoneState>(UpdateProcedureState.ProcedurePatchDoneState);
|
|
||||||
_fsm.Register<ProcedureLoadAssembly>(UpdateProcedureState.ProcedureLoadAssembly);
|
|
||||||
_fsm.Register<ProcedureUpdateFinishState>(UpdateProcedureState.ProcedureUpdateFinishState);
|
|
||||||
_fsm.SwitchState(UpdateProcedureState.ProcedureEntryState);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Update()
|
|
||||||
{
|
|
||||||
_fsm.Update(Time.deltaTime);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnDestroy()
|
|
||||||
{
|
|
||||||
_fsm.Dispose();
|
|
||||||
_fsm = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
32
Client/Assets/Scripts/Startup/Procedure/ProcedureEntry.cs
Normal file
32
Client/Assets/Scripts/Startup/Procedure/ProcedureEntry.cs
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using AlicizaX;
|
||||||
|
using Cysharp.Threading.Tasks;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
|
||||||
|
namespace Unity.Startup.Procedure
|
||||||
|
{
|
||||||
|
public class ProcedureEntry : MonoBehaviour
|
||||||
|
{
|
||||||
|
private async UniTaskVoid Start()
|
||||||
|
{
|
||||||
|
await UniTask.WaitUntil(() => YooAsset.YooAssets.Initialized);
|
||||||
|
|
||||||
|
GameApp.Procedure.InitializeProcedure(
|
||||||
|
new List<IProcedure>
|
||||||
|
{
|
||||||
|
new ProcedureEntryState(),
|
||||||
|
new ProcedureGetAppVersionInfoState(),
|
||||||
|
new ProcedureInitPackageState(),
|
||||||
|
new ProcedureDownloadBundleState(),
|
||||||
|
new ProcedurePatchDoneState(),
|
||||||
|
new ProcedureLoadAssembly(),
|
||||||
|
new ProcedureUpdateFinishState(),
|
||||||
|
},
|
||||||
|
typeof(ProcedureEntryState)
|
||||||
|
);
|
||||||
|
Destroy(gameObject);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1 +1 @@
|
|||||||
70bf86ea
|
81bfd4e0
|
||||||
@ -10,7 +10,7 @@
|
|||||||
"BuildPipeline": "EditorSimulateBuildPipeline",
|
"BuildPipeline": "EditorSimulateBuildPipeline",
|
||||||
"PackageName": "DefaultPackage",
|
"PackageName": "DefaultPackage",
|
||||||
"PackageVersion": "Simulate",
|
"PackageVersion": "Simulate",
|
||||||
"PackageNote": "2025/11/17 16:58:36",
|
"PackageNote": "2025/11/18 16:08:53",
|
||||||
"AssetList": [
|
"AssetList": [
|
||||||
{
|
{
|
||||||
"Address": "A1",
|
"Address": "A1",
|
||||||
@ -1603,7 +1603,7 @@
|
|||||||
"UnityCRC": 0,
|
"UnityCRC": 0,
|
||||||
"FileHash": "8382993c3598a4a2e8d429b0d7a6f9f1",
|
"FileHash": "8382993c3598a4a2e8d429b0d7a6f9f1",
|
||||||
"FileCRC": 0,
|
"FileCRC": 0,
|
||||||
"FileSize": 9696,
|
"FileSize": 9704,
|
||||||
"Encrypted": false,
|
"Encrypted": false,
|
||||||
"Tags": [
|
"Tags": [
|
||||||
"UI"
|
"UI"
|
||||||
@ -1615,7 +1615,7 @@
|
|||||||
"UnityCRC": 0,
|
"UnityCRC": 0,
|
||||||
"FileHash": "e0807c700d7f154aa3711c1bf07383d6",
|
"FileHash": "e0807c700d7f154aa3711c1bf07383d6",
|
||||||
"FileCRC": 0,
|
"FileCRC": 0,
|
||||||
"FileSize": 34603,
|
"FileSize": 34611,
|
||||||
"Encrypted": false,
|
"Encrypted": false,
|
||||||
"Tags": [
|
"Tags": [
|
||||||
"UI"
|
"UI"
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
Subproject commit 820f568dcf70c76f5f1058a4bcd9cace314fcd69
|
Subproject commit 5051b25b725d4c095f250847b63c138f09b41063
|
||||||
@ -1 +1 @@
|
|||||||
Subproject commit e31dda94ce699d93a5a8fada24152fcd1d0816ab
|
Subproject commit 958364080f889abb03729db844a2b0d0d1052e5e
|
||||||
Loading…
Reference in New Issue
Block a user