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 5420869..ed7b80b 100644 Binary files a/Client/Assets/Test/GameLogic.dll.bytes and b/Client/Assets/Test/GameLogic.dll.bytes differ diff --git a/Client/Assets/Test/GameLogic.pdb.bytes b/Client/Assets/Test/GameLogic.pdb.bytes index 7c35aae..8ffc30a 100644 Binary files a/Client/Assets/Test/GameLogic.pdb.bytes and b/Client/Assets/Test/GameLogic.pdb.bytes differ diff --git a/Client/Bundles/StandaloneWindows/DefaultPackage/Simulate/DefaultPackage_Simulate.bytes b/Client/Bundles/StandaloneWindows/DefaultPackage/Simulate/DefaultPackage_Simulate.bytes index df7b908..db13999 100644 Binary files a/Client/Bundles/StandaloneWindows/DefaultPackage/Simulate/DefaultPackage_Simulate.bytes and b/Client/Bundles/StandaloneWindows/DefaultPackage/Simulate/DefaultPackage_Simulate.bytes differ diff --git a/Client/Bundles/StandaloneWindows/DefaultPackage/Simulate/DefaultPackage_Simulate.hash b/Client/Bundles/StandaloneWindows/DefaultPackage/Simulate/DefaultPackage_Simulate.hash index ba6364a..184f266 100644 --- a/Client/Bundles/StandaloneWindows/DefaultPackage/Simulate/DefaultPackage_Simulate.hash +++ b/Client/Bundles/StandaloneWindows/DefaultPackage/Simulate/DefaultPackage_Simulate.hash @@ -1 +1 @@ -70bf86ea \ No newline at end of file +81bfd4e0 \ No newline at end of file diff --git a/Client/Bundles/StandaloneWindows/DefaultPackage/Simulate/DefaultPackage_Simulate.json b/Client/Bundles/StandaloneWindows/DefaultPackage/Simulate/DefaultPackage_Simulate.json index 31ac0f2..3b84518 100644 --- a/Client/Bundles/StandaloneWindows/DefaultPackage/Simulate/DefaultPackage_Simulate.json +++ b/Client/Bundles/StandaloneWindows/DefaultPackage/Simulate/DefaultPackage_Simulate.json @@ -10,7 +10,7 @@ "BuildPipeline": "EditorSimulateBuildPipeline", "PackageName": "DefaultPackage", "PackageVersion": "Simulate", - "PackageNote": "2025/11/17 16:58:36", + "PackageNote": "2025/11/18 16:08:53", "AssetList": [ { "Address": "A1", @@ -1603,7 +1603,7 @@ "UnityCRC": 0, "FileHash": "8382993c3598a4a2e8d429b0d7a6f9f1", "FileCRC": 0, - "FileSize": 9696, + "FileSize": 9704, "Encrypted": false, "Tags": [ "UI" @@ -1615,7 +1615,7 @@ "UnityCRC": 0, "FileHash": "e0807c700d7f154aa3711c1bf07383d6", "FileCRC": 0, - "FileSize": 34603, + "FileSize": 34611, "Encrypted": false, "Tags": [ "UI" diff --git a/Client/Packages/com.alicizax.unity.entry b/Client/Packages/com.alicizax.unity.entry index 820f568..5051b25 160000 --- a/Client/Packages/com.alicizax.unity.entry +++ b/Client/Packages/com.alicizax.unity.entry @@ -1 +1 @@ -Subproject commit 820f568dcf70c76f5f1058a4bcd9cace314fcd69 +Subproject commit 5051b25b725d4c095f250847b63c138f09b41063 diff --git a/Client/Packages/com.alicizax.unity.framework b/Client/Packages/com.alicizax.unity.framework index e31dda9..9583640 160000 --- a/Client/Packages/com.alicizax.unity.framework +++ b/Client/Packages/com.alicizax.unity.framework @@ -1 +1 @@ -Subproject commit e31dda94ce699d93a5a8fada24152fcd1d0816ab +Subproject commit 958364080f889abb03729db844a2b0d0d1052e5e