diff --git a/Assets/YooAsset/Runtime/InitializeParameters.cs b/Assets/YooAsset/Runtime/InitializeParameters.cs index 8925dbba..b66f40b6 100644 --- a/Assets/YooAsset/Runtime/InitializeParameters.cs +++ b/Assets/YooAsset/Runtime/InitializeParameters.cs @@ -150,5 +150,10 @@ namespace YooAsset /// 内置资源查询服务接口 /// public IBuildinQueryServices BuildinQueryServices = null; + + /// + /// 微信缓存查询服务接口 + /// + public IWechatQueryServices WechatQueryServices = null; } } \ No newline at end of file diff --git a/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/WebPlayModeImpl.cs b/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/WebPlayModeImpl.cs index de073072..5b9cc70d 100644 --- a/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/WebPlayModeImpl.cs +++ b/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/WebPlayModeImpl.cs @@ -10,6 +10,7 @@ namespace YooAsset private ResourceAssist _assist; private IBuildinQueryServices _buildinQueryServices; private IRemoteServices _remoteServices; + private IWechatQueryServices _wechatQueryServices; public readonly string PackageName; public DownloadManager Download @@ -34,11 +35,12 @@ namespace YooAsset /// /// 异步初始化 /// - public InitializationOperation InitializeAsync(ResourceAssist assist, IBuildinQueryServices buildinQueryServices, IRemoteServices remoteServices) + public InitializationOperation InitializeAsync(ResourceAssist assist, IBuildinQueryServices buildinQueryServices, IRemoteServices remoteServices, IWechatQueryServices wechatQueryServices) { _assist = assist; _buildinQueryServices = buildinQueryServices; _remoteServices = remoteServices; + _wechatQueryServices = wechatQueryServices; var operation = new WebPlayModeInitializationOperation(this); OperationSystem.StartOperation(PackageName, operation); @@ -65,23 +67,13 @@ namespace YooAsset } // 查询相关 -#if UNITY_WECHAT_GAME - private WeChatWASM.WXFileSystemManager _wxFileSystemMgr; private bool IsCachedPackageBundle(PackageBundle packageBundle) { - if (_wxFileSystemMgr == null) - _wxFileSystemMgr = WeChatWASM.WX.GetFileSystemManager(); - string filePath = WeChatWASM.WX.env.USER_DATA_PATH + packageBundle.FileName; - string result = _wxFileSystemMgr.AccessSync(filePath); - return result.Equals("access:ok"); + if (_wechatQueryServices != null) + return _wechatQueryServices.Query(PackageName, packageBundle.FileName, packageBundle.FileCRC); + else + return false; } -#else - private bool IsCachedPackageBundle(PackageBundle packageBundle) - { - return false; - } -#endif - private bool IsBuildinPackageBundle(PackageBundle packageBundle) { return _buildinQueryServices.Query(PackageName, packageBundle.FileName, packageBundle.FileCRC); diff --git a/Assets/YooAsset/Runtime/ResourcePackage/ResourcePackage.cs b/Assets/YooAsset/Runtime/ResourcePackage/ResourcePackage.cs index 301591fa..0629bdb1 100644 --- a/Assets/YooAsset/Runtime/ResourcePackage/ResourcePackage.cs +++ b/Assets/YooAsset/Runtime/ResourcePackage/ResourcePackage.cs @@ -184,7 +184,8 @@ namespace YooAsset var initializeParameters = parameters as WebPlayModeParameters; initializeOperation = webPlayModeImpl.InitializeAsync(assist, initializeParameters.BuildinQueryServices, - initializeParameters.RemoteServices); + initializeParameters.RemoteServices, + initializeParameters.WechatQueryServices); } else { diff --git a/Assets/YooAsset/Runtime/Services/IWechatQueryServices.cs b/Assets/YooAsset/Runtime/Services/IWechatQueryServices.cs new file mode 100644 index 00000000..c225bdb5 --- /dev/null +++ b/Assets/YooAsset/Runtime/Services/IWechatQueryServices.cs @@ -0,0 +1,15 @@ + +namespace YooAsset +{ + public interface IWechatQueryServices + { + /// + /// 查询是否为微信缓存的资源文件 + /// + /// 包裹名称 + /// 文件名称(包含文件的后缀格式) + /// 文件哈希值 + /// 返回查询结果 + bool Query(string packageName, string fileName, string fileCRC); + } +} \ No newline at end of file diff --git a/Assets/YooAsset/Runtime/Services/IWechatQueryServices.cs.meta b/Assets/YooAsset/Runtime/Services/IWechatQueryServices.cs.meta new file mode 100644 index 00000000..e7455b44 --- /dev/null +++ b/Assets/YooAsset/Runtime/Services/IWechatQueryServices.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e6b28ce9425f5eb4f972dcda9fd864f3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: