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: