From d55db19f0e4e94f3c9fbb3ba9e2cd3d6e01f6bcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E5=86=A0=E5=B3=B0?= Date: Fri, 14 Feb 2025 16:37:23 +0800 Subject: [PATCH] update extension sample MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 微信小游戏和抖音小游戏AssetBundle使用插件卸载机制。 --- .../TiktokFileSystem/BundleResult.meta | 8 +++ .../BundleResult/TTAssetBundleResult.cs | 68 +++++++++++++++++++ .../BundleResult/TTAssetBundleResult.cs.meta | 11 +++ .../Operation/TTFSLoadBundleOperation.cs | 2 +- .../Operation/WXFSLoadBundleOperation.cs | 2 +- 5 files changed, 89 insertions(+), 2 deletions(-) create mode 100644 Assets/YooAsset/Samples~/Extension Sample/Runtime/ExtensionFileSystem/TiktokFileSystem/BundleResult.meta create mode 100644 Assets/YooAsset/Samples~/Extension Sample/Runtime/ExtensionFileSystem/TiktokFileSystem/BundleResult/TTAssetBundleResult.cs create mode 100644 Assets/YooAsset/Samples~/Extension Sample/Runtime/ExtensionFileSystem/TiktokFileSystem/BundleResult/TTAssetBundleResult.cs.meta diff --git a/Assets/YooAsset/Samples~/Extension Sample/Runtime/ExtensionFileSystem/TiktokFileSystem/BundleResult.meta b/Assets/YooAsset/Samples~/Extension Sample/Runtime/ExtensionFileSystem/TiktokFileSystem/BundleResult.meta new file mode 100644 index 00000000..e606ef85 --- /dev/null +++ b/Assets/YooAsset/Samples~/Extension Sample/Runtime/ExtensionFileSystem/TiktokFileSystem/BundleResult.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 879f2b393f883554899ab3345f0dc998 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/YooAsset/Samples~/Extension Sample/Runtime/ExtensionFileSystem/TiktokFileSystem/BundleResult/TTAssetBundleResult.cs b/Assets/YooAsset/Samples~/Extension Sample/Runtime/ExtensionFileSystem/TiktokFileSystem/BundleResult/TTAssetBundleResult.cs new file mode 100644 index 00000000..b28cd797 --- /dev/null +++ b/Assets/YooAsset/Samples~/Extension Sample/Runtime/ExtensionFileSystem/TiktokFileSystem/BundleResult/TTAssetBundleResult.cs @@ -0,0 +1,68 @@ +#if UNITY_WEBGL && DOUYINMINIGAME +using System.IO; +using UnityEngine; +using UnityEngine.SceneManagement; +using TTSDK; + +namespace YooAsset +{ + internal class TTAssetBundleResult : BundleResult + { + private readonly IFileSystem _fileSystem; + private readonly PackageBundle _packageBundle; + private readonly AssetBundle _assetBundle; + + public TTAssetBundleResult(IFileSystem fileSystem, PackageBundle packageBundle, AssetBundle assetBundle) + { + _fileSystem = fileSystem; + _packageBundle = packageBundle; + _assetBundle = assetBundle; + } + + public override void UnloadBundleFile() + { + if (_assetBundle != null) + { + _assetBundle.TTUnload(true); + } + } + public override string GetBundleFilePath() + { + return _fileSystem.GetBundleFilePath(_packageBundle); + } + public override byte[] ReadBundleFileData() + { + return _fileSystem.ReadBundleFileData(_packageBundle); + } + public override string ReadBundleFileText() + { + return _fileSystem.ReadBundleFileText(_packageBundle); + } + + public override FSLoadAssetOperation LoadAssetAsync(AssetInfo assetInfo) + { + var operation = new AssetBundleLoadAssetOperation(_packageBundle, _assetBundle, assetInfo); + OperationSystem.StartOperation(_fileSystem.PackageName, operation); + return operation; + } + public override FSLoadAllAssetsOperation LoadAllAssetsAsync(AssetInfo assetInfo) + { + var operation = new AssetBundleLoadAllAssetsOperation(_packageBundle, _assetBundle, assetInfo); + OperationSystem.StartOperation(_fileSystem.PackageName, operation); + return operation; + } + public override FSLoadSubAssetsOperation LoadSubAssetsAsync(AssetInfo assetInfo) + { + var operation = new AssetBundleLoadSubAssetsOperation(_packageBundle, _assetBundle, assetInfo); + OperationSystem.StartOperation(_fileSystem.PackageName, operation); + return operation; + } + public override FSLoadSceneOperation LoadSceneOperation(AssetInfo assetInfo, LoadSceneParameters loadParams, bool suspendLoad) + { + var operation = new AssetBundleLoadSceneOperation(assetInfo, loadParams, suspendLoad); + OperationSystem.StartOperation(_fileSystem.PackageName, operation); + return operation; + } + } +} +#endif \ No newline at end of file diff --git a/Assets/YooAsset/Samples~/Extension Sample/Runtime/ExtensionFileSystem/TiktokFileSystem/BundleResult/TTAssetBundleResult.cs.meta b/Assets/YooAsset/Samples~/Extension Sample/Runtime/ExtensionFileSystem/TiktokFileSystem/BundleResult/TTAssetBundleResult.cs.meta new file mode 100644 index 00000000..0826d65e --- /dev/null +++ b/Assets/YooAsset/Samples~/Extension Sample/Runtime/ExtensionFileSystem/TiktokFileSystem/BundleResult/TTAssetBundleResult.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 80ce0631d38cf74458c902fb325afb81 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/YooAsset/Samples~/Extension Sample/Runtime/ExtensionFileSystem/TiktokFileSystem/Operation/TTFSLoadBundleOperation.cs b/Assets/YooAsset/Samples~/Extension Sample/Runtime/ExtensionFileSystem/TiktokFileSystem/Operation/TTFSLoadBundleOperation.cs index c5658cdc..cd865fd0 100644 --- a/Assets/YooAsset/Samples~/Extension Sample/Runtime/ExtensionFileSystem/TiktokFileSystem/Operation/TTFSLoadBundleOperation.cs +++ b/Assets/YooAsset/Samples~/Extension Sample/Runtime/ExtensionFileSystem/TiktokFileSystem/Operation/TTFSLoadBundleOperation.cs @@ -69,7 +69,7 @@ internal class TTFSLoadBundleOperation : FSLoadBundleOperation else { _steps = ESteps.Done; - Result = new AssetBundleResult(_fileSystem, _bundle, assetBundle, null); + Result = new TTAssetBundleResult(_fileSystem, _bundle, assetBundle); Status = EOperationStatus.Succeed; } } diff --git a/Assets/YooAsset/Samples~/Extension Sample/Runtime/ExtensionFileSystem/WechatFileSystem/Operation/WXFSLoadBundleOperation.cs b/Assets/YooAsset/Samples~/Extension Sample/Runtime/ExtensionFileSystem/WechatFileSystem/Operation/WXFSLoadBundleOperation.cs index 8b16c964..5b74a9c7 100644 --- a/Assets/YooAsset/Samples~/Extension Sample/Runtime/ExtensionFileSystem/WechatFileSystem/Operation/WXFSLoadBundleOperation.cs +++ b/Assets/YooAsset/Samples~/Extension Sample/Runtime/ExtensionFileSystem/WechatFileSystem/Operation/WXFSLoadBundleOperation.cs @@ -67,7 +67,7 @@ internal class WXFSLoadBundleOperation : FSLoadBundleOperation else { _steps = ESteps.Done; - Result = new AssetBundleResult(_fileSystem, _bundle, assetBundle, null); + Result = new WXAssetBundleResult(_fileSystem, _bundle, assetBundle); Status = EOperationStatus.Succeed; } }