From 88c8022c4d6cd4630916c342de01146753dcc181 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=80=9D=E6=B5=B7?= <1464576565@qq.com> Date: Tue, 18 Nov 2025 16:15:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0procedure=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Client/Assets/Bundles/UI/UICardWidget.prefab | 2 +- .../Bundles/UI/UILoadUpdateWindow.prefab | 2 +- .../Hotfix/GameLogic/UI/UILoadUpdate.cs | 1 + .../ProcedureDownloadBundleState.cs | 8 +-- .../PatchUpdater/ProcedureEntryState.cs | 8 +-- .../ProcedureGetAppVersionInfoState.cs | 5 +- .../PatchUpdater/ProcedureInitPackageState.cs | 7 ++- .../PatchUpdater/ProcedureLoadAssembly.cs | 8 +-- .../PatchUpdater/ProcedurePatchDoneState.cs | 4 +- .../ProcedureUpdateFinishState.cs | 10 ++-- .../Scripts/Startup/Procedure/Procedure.cs | 48 ------------------ .../Startup/Procedure/ProcedureEntry.cs | 32 ++++++++++++ ...ocedure.cs.meta => ProcedureEntry.cs.meta} | 0 Client/Assets/Test/GameLogic.dll.bytes | Bin 54784 -> 54784 bytes Client/Assets/Test/GameLogic.pdb.bytes | Bin 24564 -> 24564 bytes .../Simulate/DefaultPackage_Simulate.bytes | Bin 15859 -> 15859 bytes .../Simulate/DefaultPackage_Simulate.hash | 2 +- .../Simulate/DefaultPackage_Simulate.json | 6 +-- Client/Packages/com.alicizax.unity.entry | 2 +- Client/Packages/com.alicizax.unity.framework | 2 +- 20 files changed, 65 insertions(+), 82 deletions(-) delete mode 100644 Client/Assets/Scripts/Startup/Procedure/Procedure.cs create mode 100644 Client/Assets/Scripts/Startup/Procedure/ProcedureEntry.cs rename Client/Assets/Scripts/Startup/Procedure/{Procedure.cs.meta => ProcedureEntry.cs.meta} (100%) diff --git a/Client/Assets/Bundles/UI/UICardWidget.prefab b/Client/Assets/Bundles/UI/UICardWidget.prefab index 6836db5..acc0a4a 100644 --- a/Client/Assets/Bundles/UI/UICardWidget.prefab +++ b/Client/Assets/Bundles/UI/UICardWidget.prefab @@ -79,7 +79,7 @@ MonoBehaviour: m_BlockingObjects: 0 m_BlockingMask: serializedVersion: 2 - m_Bits: 55 + m_Bits: 4294967295 --- !u!114 &1744287959665422355 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Client/Assets/Bundles/UI/UILoadUpdateWindow.prefab b/Client/Assets/Bundles/UI/UILoadUpdateWindow.prefab index 8a83baa..69e607f 100644 --- a/Client/Assets/Bundles/UI/UILoadUpdateWindow.prefab +++ b/Client/Assets/Bundles/UI/UILoadUpdateWindow.prefab @@ -86,7 +86,7 @@ MonoBehaviour: m_BlockingObjects: 0 m_BlockingMask: serializedVersion: 2 - m_Bits: 55 + m_Bits: 4294967295 --- !u!114 &1590262444720639052 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Client/Assets/Scripts/Hotfix/GameLogic/UI/UILoadUpdate.cs b/Client/Assets/Scripts/Hotfix/GameLogic/UI/UILoadUpdate.cs index ae95e5c..64d2070 100644 --- a/Client/Assets/Scripts/Hotfix/GameLogic/UI/UILoadUpdate.cs +++ b/Client/Assets/Scripts/Hotfix/GameLogic/UI/UILoadUpdate.cs @@ -27,6 +27,7 @@ public class UILoadUpdate : UITabWindow private void OnHandleTestUIOpenEevent(TestUIOpenEvent obj) { + } private void CreateTest() diff --git a/Client/Assets/Scripts/Startup/Procedure/PatchUpdater/ProcedureDownloadBundleState.cs b/Client/Assets/Scripts/Startup/Procedure/PatchUpdater/ProcedureDownloadBundleState.cs index 3764112..e55c372 100644 --- a/Client/Assets/Scripts/Startup/Procedure/PatchUpdater/ProcedureDownloadBundleState.cs +++ b/Client/Assets/Scripts/Startup/Procedure/PatchUpdater/ProcedureDownloadBundleState.cs @@ -6,7 +6,7 @@ using YooAsset; namespace Unity.Startup.Procedure { - internal sealed class ProcedureDownloadBundleState : StateBase + internal sealed class ProcedureDownloadBundleState : ProcedureBase { ResourceDownloaderOperation downloader; @@ -15,7 +15,7 @@ namespace Unity.Startup.Procedure CreateDownloader(); } - protected override void OnExit() + protected override void OnLeave() { downloader.CancelDownload(); downloader = null; @@ -27,7 +27,7 @@ namespace Unity.Startup.Procedure if (downloader.TotalDownloadCount == 0) { Log.Info("没有发现需要下载的资源"); - SwitchState(UpdateProcedureState.ProcedurePatchDoneState); + SwitchProcedure(); } else { @@ -66,7 +66,7 @@ namespace Unity.Startup.Procedure return; } - SwitchState(UpdateProcedureState.ProcedurePatchDoneState); + SwitchProcedure(); } private void OnDownloadProgressCallback(DownloadUpdateData data) diff --git a/Client/Assets/Scripts/Startup/Procedure/PatchUpdater/ProcedureEntryState.cs b/Client/Assets/Scripts/Startup/Procedure/PatchUpdater/ProcedureEntryState.cs index 4aa85de..f3b4eb6 100644 --- a/Client/Assets/Scripts/Startup/Procedure/PatchUpdater/ProcedureEntryState.cs +++ b/Client/Assets/Scripts/Startup/Procedure/PatchUpdater/ProcedureEntryState.cs @@ -10,14 +10,14 @@ namespace Unity.Startup.Procedure /// /// 启动游戏 /// - public class ProcedureEntryState : StateBase + public class ProcedureEntryState : ProcedureBase { protected override void OnEnter() { LauncherUIHandler.Start(); if (GameApp.Resource.PlayMode == EPlayMode.OfflinePlayMode || GameApp.Resource.PlayMode == EPlayMode.EditorSimulateMode) { - SwitchState(UpdateProcedureState.ProcedureInitPackageState); + SwitchProcedure(); return; } @@ -31,7 +31,7 @@ namespace Unity.Startup.Procedure if (GameApp.Resource.PlayMode == EPlayMode.WebPlayMode) { HttpHelper.CDNUrl = "http://127.0.0.1:8080/CDN/WebGL"; - SwitchState(UpdateProcedureState.ProcedureInitPackageState); + SwitchProcedure(); return; } @@ -43,7 +43,7 @@ namespace Unity.Startup.Procedure try { await HttpHelper.GetRemoteVersion(); - SwitchState(UpdateProcedureState.ProcedureGetAppVersionInfoState); + SwitchProcedure(); } catch (Exception e) { diff --git a/Client/Assets/Scripts/Startup/Procedure/PatchUpdater/ProcedureGetAppVersionInfoState.cs b/Client/Assets/Scripts/Startup/Procedure/PatchUpdater/ProcedureGetAppVersionInfoState.cs index 8f1d514..13aa6f2 100644 --- a/Client/Assets/Scripts/Startup/Procedure/PatchUpdater/ProcedureGetAppVersionInfoState.cs +++ b/Client/Assets/Scripts/Startup/Procedure/PatchUpdater/ProcedureGetAppVersionInfoState.cs @@ -9,7 +9,7 @@ namespace Unity.Startup.Procedure /// /// 获取版本信息 /// - public sealed class ProcedureGetAppVersionInfoState : StateBase + public sealed class ProcedureGetAppVersionInfoState : ProcedureBase { protected override void OnEnter() { @@ -34,8 +34,7 @@ namespace Unity.Startup.Procedure return; } - - SwitchState(UpdateProcedureState.ProcedureInitPackageState); + SwitchProcedure(); } catch (Exception e) { diff --git a/Client/Assets/Scripts/Startup/Procedure/PatchUpdater/ProcedureInitPackageState.cs b/Client/Assets/Scripts/Startup/Procedure/PatchUpdater/ProcedureInitPackageState.cs index b5ff5ff..d480000 100644 --- a/Client/Assets/Scripts/Startup/Procedure/PatchUpdater/ProcedureInitPackageState.cs +++ b/Client/Assets/Scripts/Startup/Procedure/PatchUpdater/ProcedureInitPackageState.cs @@ -4,7 +4,7 @@ using YooAsset; namespace Unity.Startup.Procedure { - internal sealed class ProcedureInitPackageState : StateBase + internal sealed class ProcedureInitPackageState : ProcedureBase { private int maxFailedCount = 0; @@ -66,11 +66,10 @@ namespace Unity.Startup.Procedure { if (GameApp.Resource.PlayMode == EPlayMode.OfflinePlayMode) { - SwitchState(UpdateProcedureState.ProcedurePatchDoneState); + SwitchProcedure(); return; } - - SwitchState(UpdateProcedureState.ProcedureDownloadBundleState); + SwitchProcedure(); } else { diff --git a/Client/Assets/Scripts/Startup/Procedure/PatchUpdater/ProcedureLoadAssembly.cs b/Client/Assets/Scripts/Startup/Procedure/PatchUpdater/ProcedureLoadAssembly.cs index e871b5d..16a4525 100644 --- a/Client/Assets/Scripts/Startup/Procedure/PatchUpdater/ProcedureLoadAssembly.cs +++ b/Client/Assets/Scripts/Startup/Procedure/PatchUpdater/ProcedureLoadAssembly.cs @@ -12,7 +12,7 @@ using HybridCLR; namespace Unity.Startup.Procedure { - public sealed class ProcedureLoadAssembly : StateBase + public sealed class ProcedureLoadAssembly : ProcedureBase { #if ENABLE_HYBRIDCLR private int m_LoadAssetCount; @@ -33,7 +33,7 @@ namespace Unity.Startup.Procedure protected override void OnEnter() { #if !ENABLE_HYBRIDCLR - SwitchState(UpdateProcedureState.ProcedureUpdateFinishState); + SwitchProcedure(); return; #endif @@ -78,7 +78,7 @@ namespace Unity.Startup.Procedure #if ENABLE_HYBRIDCLR - protected override void OnUpdate(float deltaTime) + protected override void OnUpdate() { if (!m_LoadAssemblyComplete) { @@ -95,7 +95,7 @@ namespace Unity.Startup.Procedure private void AllAssemblyLoadComplete() { - SwitchState(UpdateProcedureState.ProcedureUpdateFinishState); + SwitchProcedure(); if (m_MainLogicAssembly == null) { diff --git a/Client/Assets/Scripts/Startup/Procedure/PatchUpdater/ProcedurePatchDoneState.cs b/Client/Assets/Scripts/Startup/Procedure/PatchUpdater/ProcedurePatchDoneState.cs index 460d0f2..8bfff3f 100644 --- a/Client/Assets/Scripts/Startup/Procedure/PatchUpdater/ProcedurePatchDoneState.cs +++ b/Client/Assets/Scripts/Startup/Procedure/PatchUpdater/ProcedurePatchDoneState.cs @@ -6,7 +6,7 @@ using YooAsset; namespace Unity.Startup.Procedure { - internal sealed class ProcedurePatchDoneState : StateBase + internal sealed class ProcedurePatchDoneState : ProcedureBase { protected override void OnEnter() { @@ -18,7 +18,7 @@ namespace Unity.Startup.Procedure private void ClearCacheCompleted(AsyncOperationBase obj) { Log.Info($"清理包裹缓存完成"); - SwitchState(UpdateProcedureState.ProcedureLoadAssembly); + SwitchProcedure(); } } } diff --git a/Client/Assets/Scripts/Startup/Procedure/PatchUpdater/ProcedureUpdateFinishState.cs b/Client/Assets/Scripts/Startup/Procedure/PatchUpdater/ProcedureUpdateFinishState.cs index 305c408..28cb47e 100644 --- a/Client/Assets/Scripts/Startup/Procedure/PatchUpdater/ProcedureUpdateFinishState.cs +++ b/Client/Assets/Scripts/Startup/Procedure/PatchUpdater/ProcedureUpdateFinishState.cs @@ -1,19 +1,19 @@ -using Cysharp.Threading.Tasks; -using AlicizaX.Fsm.Runtime; -using UnityEngine; -using YooAsset; + + +using AlicizaX; namespace Unity.Startup.Procedure { /// /// 启动热更新游戏 /// - public sealed class ProcedureUpdateFinishState : StateBase + public sealed class ProcedureUpdateFinishState : ProcedureBase { protected override void OnEnter() { base.OnEnter(); LauncherUIHandler.Dispose(); + GameApp.Procedure.ClearAllProcedures(); } } } diff --git a/Client/Assets/Scripts/Startup/Procedure/Procedure.cs b/Client/Assets/Scripts/Startup/Procedure/Procedure.cs deleted file mode 100644 index 335db65..0000000 --- a/Client/Assets/Scripts/Startup/Procedure/Procedure.cs +++ /dev/null @@ -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 _fsm; - - private async UniTaskVoid Start() - { - await UniTask.WaitUntil(() => YooAsset.YooAssets.Initialized); - _fsm = new SimpleFSM(); - _fsm.Register(UpdateProcedureState.ProcedureEntryState); - _fsm.Register(UpdateProcedureState.ProcedureGetAppVersionInfoState); - _fsm.Register(UpdateProcedureState.ProcedureInitPackageState); - _fsm.Register(UpdateProcedureState.ProcedureDownloadBundleState); - _fsm.Register(UpdateProcedureState.ProcedurePatchDoneState); - _fsm.Register(UpdateProcedureState.ProcedureLoadAssembly); - _fsm.Register(UpdateProcedureState.ProcedureUpdateFinishState); - _fsm.SwitchState(UpdateProcedureState.ProcedureEntryState); - } - - private void Update() - { - _fsm.Update(Time.deltaTime); - } - - private void OnDestroy() - { - _fsm.Dispose(); - _fsm = null; - } - } -} diff --git a/Client/Assets/Scripts/Startup/Procedure/ProcedureEntry.cs b/Client/Assets/Scripts/Startup/Procedure/ProcedureEntry.cs new file mode 100644 index 0000000..8fa06f6 --- /dev/null +++ b/Client/Assets/Scripts/Startup/Procedure/ProcedureEntry.cs @@ -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 + { + new ProcedureEntryState(), + new ProcedureGetAppVersionInfoState(), + new ProcedureInitPackageState(), + new ProcedureDownloadBundleState(), + new ProcedurePatchDoneState(), + new ProcedureLoadAssembly(), + new ProcedureUpdateFinishState(), + }, + typeof(ProcedureEntryState) + ); + Destroy(gameObject); + } + } +} diff --git a/Client/Assets/Scripts/Startup/Procedure/Procedure.cs.meta b/Client/Assets/Scripts/Startup/Procedure/ProcedureEntry.cs.meta similarity index 100% rename from Client/Assets/Scripts/Startup/Procedure/Procedure.cs.meta rename to Client/Assets/Scripts/Startup/Procedure/ProcedureEntry.cs.meta diff --git a/Client/Assets/Test/GameLogic.dll.bytes b/Client/Assets/Test/GameLogic.dll.bytes index 54208694c00f29783f53df3ef8f54d70a7d652a6..ed7b80be1723f3825fd3dcdbff46387388bac966 100644 GIT binary patch delta 107 zcmZoz!`!fjc|r%v8I?(`8+&dX68MrUyr6@%#k=c}%gZGy>~5P&4o_icX_(v25d^ZzcGoO3!#0V=3y02KtPj@@N?!B;-f=&<$kk6SiBJ1xZp E01`Mhb^rhX delta 107 zcmZoz!`!fjc|r$ExZ0~<8+&dX5;&CpN5fW diff --git a/Client/Assets/Test/GameLogic.pdb.bytes b/Client/Assets/Test/GameLogic.pdb.bytes index 7c35aaed0d797f852a59e68b112ae1979975fc8c..8ffc30a0fc08f1484b18e5144ff9e2125d14b5f5 100644 GIT binary patch delta 269 zcmeyepYh9n#tAhduRqmz9^#+oxM9+b7h3cGE@+u};O@o=|G5={<{GeSH*Ip6d2lm# z?6-siTli)Dg8sa+d~IP?JA3htrp@ble!EN5&6(5Auz-Q#*NuYYrSIdsHmwnPx_HIj zJ(CZGs7lCps^4Q!U}nf+Kgyl+HqU44lr?Wu{VmpR{vTq?S})Hk%D}*2tIR3EV9mrJ z!OX|Rpv=I?Q3(qQEny%25U1;VFpH~N&%n>9!E}g25}|^E|35> oP(Z|;6V4X(L9qGMdD&oUcnu+JHWmi9&AX!(urOLrj)|WE0IEAppa1{> delta 269 zcmeyepYh9n#tAhdTVn&~PmkH)y>aj5E3rx!xURYd9NjqKKevK)cZ!R7jq#T3`%gR` zZn$a7zHq0k?t~t_r#`Q84Z>DF+q|CVx4Q&K`TwU33m6zexIKHnH3vGa{+aF@yyA!J zXGNPrtC nAmYXeXN!6x*nDcdY%n#v1`swI3j^Ec-BAlz7_BD9#LoZ#mqSZM diff --git a/Client/Bundles/StandaloneWindows/DefaultPackage/Simulate/DefaultPackage_Simulate.bytes b/Client/Bundles/StandaloneWindows/DefaultPackage/Simulate/DefaultPackage_Simulate.bytes index df7b9083261b9d0f9b9af579fd234e3152e13fd5..db139993805a4fba51786a7f19f1b5a594c1cea5 100644 GIT binary patch delta 34 qcmexd{keKV9G8WHp_!F|g_WuC#tc?##ut