From d729d435d24a6b60c180abccfb3576b12b1796bd 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 10:12:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E6=94=BE=E8=B5=84=E6=BA=90=E8=A7=A3?= =?UTF-8?q?=E5=AF=86=E5=A4=96=E9=83=A8=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Runtime/ABase/ModuleDynamicBind.cs | 2 + .../Resource/Resource/ResourceComponent.cs | 5 + .../Resource/ResourceModule.Services.cs | 108 +++++++++--------- 3 files changed, 62 insertions(+), 53 deletions(-) diff --git a/Runtime/ABase/ModuleDynamicBind.cs b/Runtime/ABase/ModuleDynamicBind.cs index b5a2305..b391c2e 100644 --- a/Runtime/ABase/ModuleDynamicBind.cs +++ b/Runtime/ABase/ModuleDynamicBind.cs @@ -29,6 +29,7 @@ namespace AlicizaX.Framework.Runtime.ABase if (_resourceComponent != null) { _resourceComponent.SetPlayMode(_dynamicBindInfo.ResMode); + _resourceComponent.SetDecryptionServices(_dynamicBindInfo.DecryptionServices); } if (_debuggerComponent != null) @@ -48,5 +49,6 @@ namespace AlicizaX.Framework.Runtime.ABase public DebuggerActiveWindowType DebuggerActiveWindowType; public int ResMode; public string Language; + public string DecryptionServices; } } diff --git a/Runtime/Resource/Resource/ResourceComponent.cs b/Runtime/Resource/Resource/ResourceComponent.cs index ffba1ff..5d02a3c 100644 --- a/Runtime/Resource/Resource/ResourceComponent.cs +++ b/Runtime/Resource/Resource/ResourceComponent.cs @@ -180,6 +180,11 @@ namespace AlicizaX.Resource.Runtime _playMode = (EPlayMode)playMode; } + public void SetDecryptionServices(string decryption) + { + decryptionServices = decryption; + } + private void Awake() { _resourceModule = ModuleSystem.RegisterModule(); diff --git a/Runtime/Resource/Resource/ResourceModule.Services.cs b/Runtime/Resource/Resource/ResourceModule.Services.cs index 8cedd1b..245eb13 100644 --- a/Runtime/Resource/Resource/ResourceModule.Services.cs +++ b/Runtime/Resource/Resource/ResourceModule.Services.cs @@ -34,64 +34,64 @@ namespace AlicizaX.Resource.Runtime /// class FileStreamDecryption : IDecryptionServices { - /// - /// 同步方式获取解密的资源包对象 - /// - DecryptResult IDecryptionServices.LoadAssetBundle(DecryptFileInfo fileInfo) - { - BundleStream bundleStream = new BundleStream(fileInfo.FileLoadPath, FileMode.Open, FileAccess.Read, FileShare.Read); - DecryptResult decryptResult = new DecryptResult(); - decryptResult.ManagedStream = bundleStream; - decryptResult.Result = AssetBundle.LoadFromStream(bundleStream, fileInfo.FileLoadCRC, GetManagedReadBufferSize()); - return decryptResult; - } + /// + /// 同步方式获取解密的资源包对象 + /// + DecryptResult IDecryptionServices.LoadAssetBundle(DecryptFileInfo fileInfo) + { + BundleStream bundleStream = new BundleStream(fileInfo.FileLoadPath, FileMode.Open, FileAccess.Read, FileShare.Read); + DecryptResult decryptResult = new DecryptResult(); + decryptResult.ManagedStream = bundleStream; + decryptResult.Result = AssetBundle.LoadFromStream(bundleStream, fileInfo.FileLoadCRC, GetManagedReadBufferSize()); + return decryptResult; + } - /// - /// 异步方式获取解密的资源包对象 - /// - DecryptResult IDecryptionServices.LoadAssetBundleAsync(DecryptFileInfo fileInfo) - { - BundleStream bundleStream = new BundleStream(fileInfo.FileLoadPath, FileMode.Open, FileAccess.Read, FileShare.Read); - DecryptResult decryptResult = new DecryptResult(); - decryptResult.ManagedStream = bundleStream; - decryptResult.CreateRequest = AssetBundle.LoadFromStreamAsync(bundleStream, fileInfo.FileLoadCRC, GetManagedReadBufferSize()); - return decryptResult; - } + /// + /// 异步方式获取解密的资源包对象 + /// + DecryptResult IDecryptionServices.LoadAssetBundleAsync(DecryptFileInfo fileInfo) + { + BundleStream bundleStream = new BundleStream(fileInfo.FileLoadPath, FileMode.Open, FileAccess.Read, FileShare.Read); + DecryptResult decryptResult = new DecryptResult(); + decryptResult.ManagedStream = bundleStream; + decryptResult.CreateRequest = AssetBundle.LoadFromStreamAsync(bundleStream, fileInfo.FileLoadCRC, GetManagedReadBufferSize()); + return decryptResult; + } - /// - /// 后备方式获取解密的资源包 - /// 注意:当正常解密方法失败后,会触发后备加载! - /// 说明:建议通过LoadFromMemory()方法加载资源包作为保底机制。 - /// - DecryptResult IDecryptionServices.LoadAssetBundleFallback(DecryptFileInfo fileInfo) - { - byte[] fileData = File.ReadAllBytes(fileInfo.FileLoadPath); - var assetBundle = AssetBundle.LoadFromMemory(fileData); - DecryptResult decryptResult = new DecryptResult(); - decryptResult.Result = assetBundle; - return decryptResult; - } + /// + /// 后备方式获取解密的资源包 + /// 注意:当正常解密方法失败后,会触发后备加载! + /// 说明:建议通过LoadFromMemory()方法加载资源包作为保底机制。 + /// + DecryptResult IDecryptionServices.LoadAssetBundleFallback(DecryptFileInfo fileInfo) + { + byte[] fileData = File.ReadAllBytes(fileInfo.FileLoadPath); + var assetBundle = AssetBundle.LoadFromMemory(fileData); + DecryptResult decryptResult = new DecryptResult(); + decryptResult.Result = assetBundle; + return decryptResult; + } - /// - /// 获取解密的字节数据 - /// - byte[] IDecryptionServices.ReadFileData(DecryptFileInfo fileInfo) - { - throw new System.NotImplementedException(); - } + /// + /// 获取解密的字节数据 + /// + byte[] IDecryptionServices.ReadFileData(DecryptFileInfo fileInfo) + { + throw new System.NotImplementedException(); + } - /// - /// 获取解密的文本数据 - /// - string IDecryptionServices.ReadFileText(DecryptFileInfo fileInfo) - { - throw new System.NotImplementedException(); - } + /// + /// 获取解密的文本数据 + /// + string IDecryptionServices.ReadFileText(DecryptFileInfo fileInfo) + { + throw new System.NotImplementedException(); + } - private static uint GetManagedReadBufferSize() - { - return 1024; - } + private static uint GetManagedReadBufferSize() + { + return 1024; + } } /// @@ -161,6 +161,7 @@ namespace AlicizaX.Resource.Runtime public BundleStream(string path, FileMode mode, FileAccess access, FileShare share) : base(path, mode, access, share) { } + public BundleStream(string path, FileMode mode) : base(path, mode) { } @@ -172,6 +173,7 @@ namespace AlicizaX.Resource.Runtime { array[i] ^= KEY; } + return index; } }