diff --git a/Assets/YooAsset/Samples~/Basic Sample/GameScript/Runtime/PatchUpdater/FsmNode/FsmClearCache.cs b/Assets/YooAsset/Samples~/Basic Sample/GameScript/Runtime/PatchUpdater/FsmNode/FsmClearCache.cs new file mode 100644 index 00000000..6b4fb22d --- /dev/null +++ b/Assets/YooAsset/Samples~/Basic Sample/GameScript/Runtime/PatchUpdater/FsmNode/FsmClearCache.cs @@ -0,0 +1,28 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +internal class FsmClearCache : IFsmNode +{ + public string Name { private set; get; } = nameof(FsmClearCache); + + void IFsmNode.OnEnter() + { + Debug.Log("清理未使用的缓存文件!"); + var operation = YooAsset.YooAssets.ClearUnusedCacheFiles(); + operation.Completed += Operation_Completed; + } + + private void Operation_Completed(YooAsset.AsyncOperationBase obj) + { + Debug.Log("开始游戏!"); + YooAsset.YooAssets.LoadSceneAsync("GameScene1"); + } + + void IFsmNode.OnUpdate() + { + } + void IFsmNode.OnExit() + { + } +} \ No newline at end of file diff --git a/Assets/YooAsset/Samples~/Basic Sample/GameScript/Runtime/PatchUpdater/FsmNode/FsmClearCache.cs.meta b/Assets/YooAsset/Samples~/Basic Sample/GameScript/Runtime/PatchUpdater/FsmNode/FsmClearCache.cs.meta new file mode 100644 index 00000000..148957c7 --- /dev/null +++ b/Assets/YooAsset/Samples~/Basic Sample/GameScript/Runtime/PatchUpdater/FsmNode/FsmClearCache.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1d83ce785f1442a40a1ad0f837073b69 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/YooAsset/Samples~/Basic Sample/GameScript/Runtime/PatchUpdater/FsmNode/FsmPatchDone.cs b/Assets/YooAsset/Samples~/Basic Sample/GameScript/Runtime/PatchUpdater/FsmNode/FsmPatchDone.cs index 70926aeb..71f3d82b 100644 --- a/Assets/YooAsset/Samples~/Basic Sample/GameScript/Runtime/PatchUpdater/FsmNode/FsmPatchDone.cs +++ b/Assets/YooAsset/Samples~/Basic Sample/GameScript/Runtime/PatchUpdater/FsmNode/FsmPatchDone.cs @@ -11,7 +11,7 @@ internal class FsmPatchDone : IFsmNode PatchEventDispatcher.SendPatchStepsChangeMsg(EPatchStates.PatchDone); Debug.Log("补丁流程更新完毕!"); - YooAsset.YooAssets.LoadSceneAsync("GameScene1"); + FsmManager.Transition(nameof(FsmClearCache)); } void IFsmNode.OnUpdate() { diff --git a/Assets/YooAsset/Samples~/Basic Sample/GameScript/Runtime/PatchUpdater/PatchUpdater.cs b/Assets/YooAsset/Samples~/Basic Sample/GameScript/Runtime/PatchUpdater/PatchUpdater.cs index 5def842c..550da6ed 100644 --- a/Assets/YooAsset/Samples~/Basic Sample/GameScript/Runtime/PatchUpdater/PatchUpdater.cs +++ b/Assets/YooAsset/Samples~/Basic Sample/GameScript/Runtime/PatchUpdater/PatchUpdater.cs @@ -36,6 +36,7 @@ public static class PatchUpdater FsmManager.AddNode(new FsmCreateDownloader()); FsmManager.AddNode(new FsmDownloadWebFiles()); FsmManager.AddNode(new FsmPatchDone()); + FsmManager.AddNode(new FsmClearCache()); FsmManager.Run(nameof(FsmPatchInit)); } else