Auto-publish.

This commit is contained in:
nebulaliu 2026-01-29 16:12:03 +08:00
parent da392637d3
commit 45ea41d4e1
180 changed files with 1262 additions and 256 deletions

View File

@ -6,23 +6,6 @@ Removed - 删除功能/接口
Fixed - 修复问题
Others - 其他
-->
## 2026-1-13 v0.1.31 【普通更新】
### Fixed
* 普通修复glx模式下 createVideo underGameView为true 黑屏的问题
* 普通修复build profile在团结1.6之后的导出问题
## 2025-11-6 v0.1.30 【重要更新】
### Feature
* 重要EmscriptenGLX支持微信压缩纹理
* 普通EmscriptenGLX支持Android glReadpixels
* 普通EmscriptenGLX优化Android CPU与功耗
* 普通Metal高帧率下功耗优化
* 普通团结引擎buildprofile支持
### Fixed
* 重要Metal编码库batch size修复
* 普通PageManager相关问题修复
* 普通iOS18的微信字体修复
## 2025-9-8 v0.1.29 【重要更新】
### Feature
* 普通本地缓存存在时UnityWebRequest支持同步方式(APIwx.SetSyncReadCacheEnabled)以加快读取速度

View File

@ -34,7 +34,14 @@ namespace WeChatWASM
if(UnityUtil.GetEngineVersion() == UnityUtil.EngineVersion.Tuanjie)
{
var absolutePath = Path.GetFullPath("Packages/com.qq.weixin.minigame/WebGLTemplates/WXTemplate2022TJ");
PlayerSettings.WeixinMiniGame.template = $"PATH:{absolutePath}";
if (!Directory.Exists(absolutePath))
{
PlayerSettings.WeixinMiniGame.template = $"{templateHeader}WXTemplate2022TJ";
}
else
{
PlayerSettings.WeixinMiniGame.template = $"PATH:{absolutePath}";
}
}
else
{
@ -421,24 +428,24 @@ namespace WeChatWASM
bool showEnableGLX2022Plugin = config.CompileOptions.enableEmscriptenGLX && IsCompatibleWithUnity202203OrNewer();
var glx2022Importer = AssetImporter.GetAtPath(glLibs[0]) as PluginImporter;
#if PLATFORM_WEIXINMINIGAME
#if PLATFORM_WEIXINMINIGAME
glx2022Importer.SetCompatibleWithPlatform(BuildTarget.WeixinMiniGame, showEnableGLX2022Plugin);
#else
glx2022Importer.SetCompatibleWithPlatform(BuildTarget.WebGL, showEnableGLX2022Plugin);
#endif
#else
glx2022Importer.SetCompatibleWithPlatform(BuildTarget.WebGL, showEnableGLX2022Plugin);
#endif
SetPluginCompatibilityByModifyingMetadataFile(glLibs[0], showEnableGLX2022Plugin);
}
{
// unity2021 lib引入
bool showEnableGLX2021Plugin = config.CompileOptions.enableEmscriptenGLX && IsCompatibleWithUnity202102To202203();
var glx2021Importer = AssetImporter.GetAtPath(glLibs[1]) as PluginImporter;
#if PLATFORM_WEIXINMINIGAME
#if PLATFORM_WEIXINMINIGAME
glx2021Importer.SetCompatibleWithPlatform(BuildTarget.WeixinMiniGame, showEnableGLX2021Plugin);
#else
glx2021Importer.SetCompatibleWithPlatform(BuildTarget.WebGL, showEnableGLX2021Plugin);
#endif
#else
glx2021Importer.SetCompatibleWithPlatform(BuildTarget.WebGL, showEnableGLX2021Plugin);
#endif
SetPluginCompatibilityByModifyingMetadataFile(glLibs[1], showEnableGLX2021Plugin);
}
@ -966,7 +973,7 @@ namespace WeChatWASM
{
new Rule()
{
old = "if (GameGlobal.unityNamespace.enableProfileStats)",
old = "if (GameGlobal.unityNamespace.enableProfileStats)",
newStr = "if (GameGlobal.unityNamespace.enableProfileStats || (typeof GameGlobal.manager.getWXAppCheatMonitor === 'function' && GameGlobal.manager.getWXAppCheatMonitor().shouldForceShowPerfMonitor()))"
}
};

View File

@ -2,7 +2,7 @@ namespace WeChatWASM
{
public class WXPluginVersion
{
public static string pluginVersion = "202601131148"; // 这一行不要改他,导出的时候会自动替换
public static string pluginVersion = "202601290811"; // 这一行不要改他,导出的时候会自动替换
}
public class WXPluginConf

Binary file not shown.

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: f847db20faa66610af5948c280c4a736
guid: 5a3dd6f6295e6e525e78d48e650902e5
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,7 +1,7 @@
var WXAssetBundleLibrary = {
$WXFS: {},
WXFSInit: function (ttl, capacity) {
WXFSInit: function (ttl, capacity, prefetchSize) {
function _instanceof(left, right) { if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) { return !!right[Symbol.hasInstance](left); } else { return left instanceof right; } }
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
function _classCallCheck(instance, Constructor) { if (!_instanceof(instance, Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
@ -104,7 +104,7 @@ var WXAssetBundleLibrary = {
this.hash.set(key, temp);
return temp.ab;
}
return -1;
return null;
}
}, {
key: "put",
@ -122,9 +122,9 @@ var WXAssetBundleLibrary = {
this.hash.delete(key);
this.hash.set(key, value);
} else {
if (this.capacity !== undefined && this.size >= this.capacity) {
while (this.capacity !== undefined && this.size >= this.capacity) {
var idx = this.hash.keys().next().value;
this.size -= idx.ab.byteLength;
this.size -= this.hash.get(idx).ab.byteLength;
this.hash.delete(idx);
this.hash.set(key, value);
} else {
@ -187,6 +187,7 @@ var WXAssetBundleLibrary = {
}();
WXFS.cache = new WXFileCache(ttl, capacity);
WXFS.prefetchSize = prefetchSize || 0; // iOS prefetch bytes, 0 means disabled
if(unityNamespace.isIOS && unityNamespace.isH5Renderer) {
WXFS.cache.RegularCleaning(1);
}
@ -278,17 +279,72 @@ var WXAssetBundleLibrary = {
}
return res;
};
WXFS.read = function(stream, buffer, offset, length, position){
var contents = WXFS.cache.get(stream.fd);
if (contents === -1) {
var res = WXFS.LoadBundleFromFile(stream.path);
WXFS.cache.put(stream.fd, res);
contents = res;
// iOS: read partial file content on demand
WXFS.LoadPartialFromFile = function(path, position, length) {
var wxFd = WXFS.fs.openSync({ filePath: path, flag: 'r' });
var ab = new ArrayBuffer(length);
var res = WXFS.fs.readSync({ fd: wxFd, arrayBuffer: ab, offset: 0, length: length, position: position });
WXFS.fs.closeSync({ fd: wxFd });
return { ab: ab, bytesRead: res.bytesRead };
};
// Open file, construct wxStream and store in related maps
WXFS.open = function(pathname) {
var numberfd = WXFS.path2fd.get(pathname);
if (numberfd !== undefined) {
return numberfd;
}
numberfd = WXFS.newfd();
var fileSize;
if (unityNamespace.isIOS && WXFS.prefetchSize > 0) {
// iOS: only get file size via fstatSync, do not read file content
fileSize = WXFS.fs.fstatSync({ filePath: pathname }).size;
} else {
// Non-iOS: read file and cache
var res = WXFS.LoadBundleFromFile(pathname);
fileSize = new Uint8Array(res).length;
WXFS.cache.put(numberfd, res);
}
var wxStream = {
fd: numberfd,
path: pathname,
seekable: true,
position: 0,
stream_ops: MEMFS.stream_ops,
ungotten: [],
node: { mode: 32768, usedBytes: fileSize },
error: false
};
wxStream.stream_ops.read = WXFS.read;
WXFS.path2fd.set(pathname, numberfd);
WXFS.fd2wxStream.set(numberfd, wxStream);
return numberfd;
};
WXFS.read = function(stream, buffer, offset, length, position){
if (position >= stream.node.usedBytes) return 0;
var size = Math.min(stream.node.usedBytes - position, length);
assert(size >= 0);
buffer.set(new Uint8Array(contents.slice(position, position + size)), offset);
// Check cache first
var contents = WXFS.cache.get(stream.fd);
if (contents && position + size <= contents.byteLength) {
buffer.set(new Uint8Array(contents, position, size), offset);
return size;
}
// iOS: read on demand
if (unityNamespace.isIOS && WXFS.prefetchSize > 0) {
var readLen = position === 0 ? Math.max(size, Math.min(WXFS.prefetchSize, stream.node.usedBytes)) : size;
var res = WXFS.LoadPartialFromFile(stream.path, position, readLen);
if (position === 0) {
WXFS.cache.put(stream.fd, res.ab, true);
}
buffer.set(new Uint8Array(res.ab, 0, size), offset);
return size;
}
// Non-iOS: load full file
if (!contents) {
contents = WXFS.LoadBundleFromFile(stream.path);
WXFS.cache.put(stream.fd, contents);
}
buffer.set(new Uint8Array(contents, position, size), offset);
return size;
};
},

Binary file not shown.

View File

@ -4,6 +4,91 @@
<name>wx-runtime-editor</name>
</assembly>
<members>
<member name="T:WeChatWASM.GameProtect.Monitor.WXDataPluginExample">
<summary>
WX数据保护插件使用示例
演示如何使用数据保护功能来保护游戏中的重要数值
</summary>
</member>
<member name="M:WeChatWASM.GameProtect.Monitor.WXDataPluginExample.Example1_BasicUsage">
<summary>
示例1基础用法 - 存储和读取数据
</summary>
</member>
<member name="M:WeChatWASM.GameProtect.Monitor.WXDataPluginExample.Example2_SafeGet">
<summary>
示例2安全获取数据推荐方式
</summary>
</member>
<member name="M:WeChatWASM.GameProtect.Monitor.WXDataPluginExample.Example3_ComplexObject">
<summary>
示例3存储复杂对象
</summary>
</member>
<member name="M:WeChatWASM.GameProtect.Monitor.WXDataPluginExample.Example4_DataManagement">
<summary>
示例4数据管理
</summary>
</member>
<member name="M:WeChatWASM.GameProtect.Monitor.WXDataPluginExample.OnDataTampered(System.Object,WeChatWASM.GameProtect.Monitor.WXDataProtectionEventArgs)">
<summary>
数据篡改事件处理
</summary>
</member>
<member name="M:WeChatWASM.GameProtect.Monitor.WXDataPluginExample.HandleTampering(WeChatWASM.GameProtect.Monitor.WXDataProtectionEventArgs)">
<summary>
处理数据篡改
</summary>
</member>
<member name="T:WeChatWASM.GameProtect.Monitor.PlayerStats">
<summary>
示例:玩家属性数据结构
注意:使用 JsonUtility 序列化时,必须使用公共字段
</summary>
</member>
<member name="T:WeChatWASM.GameProtect.Monitor.GameCurrencyManager">
<summary>
游戏货币管理器示例
封装常用的货币操作,简化调用
</summary>
</member>
<member name="M:WeChatWASM.GameProtect.Monitor.GameCurrencyManager.Init(System.Int32,System.Int32)">
<summary>
初始化货币数据
</summary>
</member>
<member name="M:WeChatWASM.GameProtect.Monitor.GameCurrencyManager.GetCoins">
<summary>
获取金币数量
</summary>
</member>
<member name="M:WeChatWASM.GameProtect.Monitor.GameCurrencyManager.AddCoins(System.Int32)">
<summary>
增加金币
</summary>
</member>
<member name="M:WeChatWASM.GameProtect.Monitor.GameCurrencyManager.SpendCoins(System.Int32)">
<summary>
消费金币
</summary>
<returns>是否消费成功</returns>
</member>
<member name="M:WeChatWASM.GameProtect.Monitor.GameCurrencyManager.GetDiamonds">
<summary>
获取钻石数量
</summary>
</member>
<member name="M:WeChatWASM.GameProtect.Monitor.GameCurrencyManager.AddDiamonds(System.Int32)">
<summary>
增加钻石
</summary>
</member>
<member name="M:WeChatWASM.GameProtect.Monitor.GameCurrencyManager.SpendDiamonds(System.Int32)">
<summary>
消费钻石
</summary>
<returns>是否消费成功</returns>
</member>
<member name="T:WeChatWASM.WXBannerAd">
<summary>
Banner 广告,详见 https://developers.weixin.qq.com/minigame/dev/guide/open-ability/ad/banner-ad.html
@ -3119,6 +3204,36 @@
 是否结束
</summary>
</member>
<member name="F:WeChatWASM.ReportGameEventOption.eventId">
<summary>
事件ID开发者自行维护必需
</summary>
</member>
<member name="F:WeChatWASM.ReportGameEventOption.costTime">
<summary>
事件耗时单位ms可选不填时为0
</summary>
</member>
<member name="F:WeChatWASM.ReportGameEventOption.result">
<summary>
事件结果,默认成功(可选)不填时默认成功
</summary>
</member>
<member name="T:WeChatWASM.ReportGameEventResult">
<summary>
reportGameEvent的事件类型
</summary>
</member>
<member name="F:WeChatWASM.ReportGameEventResult.Success">
<summary>
成功事件
</summary>
</member>
<member name="F:WeChatWASM.ReportGameEventResult.Fail">
<summary>
失败事件
</summary>
</member>
<member name="F:WeChatWASM.PageManagerCallbackResult.errCode">
<summary>
错误码,文档可见 https://developers.weixin.qq.com/minigame/dev/api/open-api/openlink/wx.createPageManager.html
@ -3295,7 +3410,7 @@
需要基础库: `2.10.0`
小程序版本
可选值:
- 'develop': 开发版;
- 'develop': 开发版,提交代码审核时默认使用开发版进行审核。;
- 'trial': 体验版;
- 'release': 正式版;
</summary>
@ -3473,6 +3588,14 @@
<member name="F:WeChatWASM.DeviceInfo.platform">
<summary>
客户端平台
可选值:
- 'ios': iOS微信包含 iPhone、iPad;
- 'android': Android微信;
- 'ohos': HarmonyOS 手机端微信;
- 'ohos_pc': HarmonyOS PC微信;
- 'windows': Windows微信;
- 'mac': macOS微信;
- 'devtools': 微信开发者工具;
</summary>
</member>
<member name="F:WeChatWASM.DeviceInfo.system">
@ -3480,6 +3603,16 @@
操作系统及版本
</summary>
</member>
<member name="F:WeChatWASM.DirectAdStatusInfo.isInDirectGameAd">
<summary>
当前是否处于直接广告中
</summary>
</member>
<member name="F:WeChatWASM.DirectAdStatusInfo.isInMask">
<summary>
当前是否处于蒙层阶段
</summary>
</member>
<member name="F:WeChatWASM.EnterOptionsGame.apiCategory">
<summary>
需要基础库: `2.20.0`
@ -3546,6 +3679,11 @@
直播间 id
</summary>
</member>
<member name="F:WeChatWASM.LaunchOptionsGame.hostExtraData">
<summary>
宿主传递的数据,第三方 app 中运行小游戏时返回
</summary>
</member>
<member name="F:WeChatWASM.LaunchOptionsGame.query">
<summary>
启动小游戏的 query 参数
@ -3576,6 +3714,11 @@
shareTicket详见[获取更多转发信息](#)
</summary>
</member>
<member name="F:WeChatWASM.HostExtraData.host_scene">
<summary>
宿主app对应的场景值
</summary>
</member>
<member name="F:WeChatWASM.ClientRect.bottom">
<summary>
下边界坐标单位px
@ -3772,7 +3915,8 @@
可选值:
- 'ios': iOS微信包含 iPhone、iPad;
- 'android': Android微信;
- 'ohos': HarmonyOS微信;
- 'ohos': HarmonyOS 手机端微信;
- 'ohos_pc': HarmonyOS PC微信;
- 'windows': Windows微信;
- 'mac': macOS微信;
- 'devtools': 微信开发者工具;
@ -5595,22 +5739,22 @@
预告状态0可用 1取消 2已用
</summary>
</member>
<member name="F:WeChatWASM.GetChatToolInfoSuccessCallbackResult.cloudID">
<member name="F:WeChatWASM.RequestMidasFriendPaymentSuccessCallbackResult.cloudID">
<summary>
敏感数据对应的云 ID开通[云开发](https://developers.weixin.qq.com/minigame/dev/wxcloud/basis/getting-started.html)的小程序才会返回,可通过云调用直接获取开放数据,详细见[云调用直接获取开放数据](https://developers.weixin.qq.com/minigame/dev/guide/open-ability/signature.html#method-cloud)
</summary>
</member>
<member name="F:WeChatWASM.GetChatToolInfoSuccessCallbackResult.encryptedData">
<member name="F:WeChatWASM.RequestMidasFriendPaymentSuccessCallbackResult.encryptedData">
<summary>
包括敏感数据在内的完整转发信息的加密数据,详细见[加密数据解密算法](https://developers.weixin.qq.com/minigame/dev/guide/open-ability/signature.html)
</summary>
</member>
<member name="F:WeChatWASM.GetChatToolInfoSuccessCallbackResult.errMsg">
<member name="F:WeChatWASM.RequestMidasFriendPaymentSuccessCallbackResult.errMsg">
<summary>
错误信息
</summary>
</member>
<member name="F:WeChatWASM.GetChatToolInfoSuccessCallbackResult.iv">
<member name="F:WeChatWASM.RequestMidasFriendPaymentSuccessCallbackResult.iv">
<summary>
加密算法的初始向量,详细见[加密数据解密算法](https://developers.weixin.qq.com/minigame/dev/guide/open-ability/signature.html)
</summary>
@ -5705,6 +5849,21 @@
实验参数数组,不填则获取所有实验参数
</summary>
</member>
<member name="F:WeChatWASM.GameExptInfo.expt_id">
<summary>
实验ID标识实验
</summary>
</member>
<member name="F:WeChatWASM.GameExptInfo.param_name">
<summary>
参数名称
</summary>
</member>
<member name="F:WeChatWASM.GameExptInfo.param_value">
<summary>
参数值
</summary>
</member>
<member name="F:WeChatWASM.GetGroupEnterInfoOption.allowSingleChat">
<summary>
需要基础库: `3.7.8`
@ -5826,6 +5985,67 @@
本机局域网子网掩码,基础库 2.24.0 开始支持
</summary>
</member>
<member name="F:WeChatWASM.GetLocationOption.altitude">
<summary>
需要基础库: `1.6.0`
传入 true 会返回高度信息,由于获取高度需要较高精确度,会减慢接口返回速度
</summary>
</member>
<member name="F:WeChatWASM.GetLocationOption.highAccuracyExpireTime">
<summary>
需要基础库: `2.9.0`
高精度定位超时时间(ms)指定时间内返回最高精度该值3000ms以上高精度定位才有效果
</summary>
</member>
<member name="F:WeChatWASM.GetLocationOption.isHighAccuracy">
<summary>
需要基础库: `2.9.0`
开启高精度定位
</summary>
</member>
<member name="F:WeChatWASM.GetLocationOption.type">
<summary>
wgs84 返回 gps 坐标gcj02 返回可用于 wx.openLocation 的坐标
</summary>
</member>
<member name="F:WeChatWASM.GetLocationSuccessCallbackResult.accuracy">
<summary>
位置的精确度反应与真实位置之间的接近程度可以理解成10即与真实位置相差10m越小越精确
</summary>
</member>
<member name="F:WeChatWASM.GetLocationSuccessCallbackResult.altitude">
<summary>
需要基础库: `1.2.0`
高度,单位 m
</summary>
</member>
<member name="F:WeChatWASM.GetLocationSuccessCallbackResult.horizontalAccuracy">
<summary>
需要基础库: `1.2.0`
水平精度,单位 m
</summary>
</member>
<member name="F:WeChatWASM.GetLocationSuccessCallbackResult.latitude">
<summary>
纬度,范围为 -90~90负数表示南纬
</summary>
</member>
<member name="F:WeChatWASM.GetLocationSuccessCallbackResult.longitude">
<summary>
经度,范围为 -180~180负数表示西经
</summary>
</member>
<member name="F:WeChatWASM.GetLocationSuccessCallbackResult.speed">
<summary>
速度,单位 m/s
</summary>
</member>
<member name="F:WeChatWASM.GetLocationSuccessCallbackResult.verticalAccuracy">
<summary>
需要基础库: `1.2.0`
垂直精度,单位 mAndroid 无法获取,返回 0
</summary>
</member>
<member name="F:WeChatWASM.GetNetworkTypeSuccessCallbackResult.hasSystemProxy">
<summary>
需要基础库: `2.22.1`
@ -5941,6 +6161,17 @@
- itemSettings 只返回用户勾选过订阅面板中的“总是保持以上选择,不再询问”的订阅消息。
</summary>
</member>
<member name="F:WeChatWASM.GetShareInfoOption.shareTicket">
<summary>
shareTicket详见[获取更多转发信息](#)
</summary>
</member>
<member name="F:WeChatWASM.GetShareInfoOption.timeout">
<summary>
需要基础库: `1.9.90`
超时时间,单位 ms
</summary>
</member>
<member name="F:WeChatWASM.GetShowSplashAdStatusSuccessCallbackResult.code">
<summary>
封面广告组件展示状态码
@ -6510,6 +6741,21 @@
- 'landscapeReverse': 横屏反方向,以 HOME 键在屏幕左侧为反方向;
</summary>
</member>
<member name="F:WeChatWASM.OnDirectAdStatusChangeListenerResult.isEndByAbnormal">
<summary>
当前直玩广告是否由于异常流程而结束(如 下拉/搜索 进入正在直玩广告流程中的游戏)
</summary>
</member>
<member name="F:WeChatWASM.OnDirectAdStatusChangeListenerResult.isInDirectGameAd">
<summary>
当前是否处于直接广告中
</summary>
</member>
<member name="F:WeChatWASM.OnDirectAdStatusChangeListenerResult.isInMask">
<summary>
当前是否处于蒙层阶段
</summary>
</member>
<member name="F:WeChatWASM.ListenerError.message">
<summary>
错误信息,包含堆栈
@ -6905,7 +7151,7 @@
</member>
<member name="F:WeChatWASM.OpenChannelsUserProfileOption.finderUserName">
<summary>
视频号 id
视频号id参考格式为sphcqO59YEPCvoe查看路径为微信客户端->我tab->视频号->右上角.->视频号名字-视频号ID
</summary>
</member>
<member name="F:WeChatWASM.OpenChatToolOption.chatType">
@ -7225,6 +7471,32 @@
自定义维度,基础库 v2.14.0 开始支持可选
</summary>
</member>
<member name="F:WeChatWASM.FacialRecognitionError.errMsg">
<summary>
错误信息
| 错误码 | 错误信息 | 说明 |
| - | - | - |
| 0 | 人脸识别成功 | |
| 2002004 | 人脸识别失败 | |
| 2002006 | 用户取消/超时/不同意,导致未完成人脸识别 | |
| 2002007 | 本用户7天内人脸识别已通过通过日期为XX | |
| 2002008 | 本日已调起过人脸识别 | or本月调用次数已达上限 |
| 2002009 | 无权限发起人脸识别 | |
</summary>
</member>
<member name="F:WeChatWASM.FacialRecognitionError.errCode">
<summary>
错误码
| 错误码 | 错误信息 | 说明 |
| - | - | - |
| 0 | 人脸识别成功 | |
| 2002004 | 人脸识别失败 | |
| 2002006 | 用户取消/超时/不同意,导致未完成人脸识别 | |
| 2002007 | 本用户7天内人脸识别已通过通过日期为XX | |
| 2002008 | 本日已调起过人脸识别 | or本月调用次数已达上限 |
| 2002009 | 无权限发起人脸识别 | |
</summary>
</member>
<member name="F:WeChatWASM.RequestMidasFriendPaymentOption.buyQuantity">
<summary>
购买数量。mode=game 时必填。购买数量。详见 [buyQuantity 限制说明](#buyQuantity限制说明)。
@ -7610,7 +7882,7 @@
</member>
<member name="F:WeChatWASM.SetBackgroundFetchTokenOption.token">
<summary>
自定义的登录态
自定义的登录态。上限 1024 字符。
</summary>
</member>
<member name="F:WeChatWASM.SetClipboardDataOption.data">

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 86cfe097f9cce0b88db9414b86df4ed1
guid: 8665fd1e8911ece4f0d98a0377ead0bf
DefaultImporter:
externalObjects: {}
userData:

Binary file not shown.

View File

@ -4,12 +4,91 @@
<name>wx-runtime</name>
</assembly>
<members>
<member name="T:PlayerPrefs">
<member name="T:WeChatWASM.GameProtect.Monitor.WXDataPluginExample">
<summary>
覆盖unity的PlayerPrefs
注意:调用均为同步调用, 容易阻塞游戏主线程造成卡顿,不建议频繁调用
WX数据保护插件使用示例
演示如何使用数据保护功能来保护游戏中的重要数值
</summary>
</member>
<member name="M:WeChatWASM.GameProtect.Monitor.WXDataPluginExample.Example1_BasicUsage">
<summary>
示例1基础用法 - 存储和读取数据
</summary>
</member>
<member name="M:WeChatWASM.GameProtect.Monitor.WXDataPluginExample.Example2_SafeGet">
<summary>
示例2安全获取数据推荐方式
</summary>
</member>
<member name="M:WeChatWASM.GameProtect.Monitor.WXDataPluginExample.Example3_ComplexObject">
<summary>
示例3存储复杂对象
</summary>
</member>
<member name="M:WeChatWASM.GameProtect.Monitor.WXDataPluginExample.Example4_DataManagement">
<summary>
示例4数据管理
</summary>
</member>
<member name="M:WeChatWASM.GameProtect.Monitor.WXDataPluginExample.OnDataTampered(System.Object,WeChatWASM.GameProtect.Monitor.WXDataProtectionEventArgs)">
<summary>
数据篡改事件处理
</summary>
</member>
<member name="M:WeChatWASM.GameProtect.Monitor.WXDataPluginExample.HandleTampering(WeChatWASM.GameProtect.Monitor.WXDataProtectionEventArgs)">
<summary>
处理数据篡改
</summary>
</member>
<member name="T:WeChatWASM.GameProtect.Monitor.PlayerStats">
<summary>
示例:玩家属性数据结构
注意:使用 JsonUtility 序列化时,必须使用公共字段
</summary>
</member>
<member name="T:WeChatWASM.GameProtect.Monitor.GameCurrencyManager">
<summary>
游戏货币管理器示例
封装常用的货币操作,简化调用
</summary>
</member>
<member name="M:WeChatWASM.GameProtect.Monitor.GameCurrencyManager.Init(System.Int32,System.Int32)">
<summary>
初始化货币数据
</summary>
</member>
<member name="M:WeChatWASM.GameProtect.Monitor.GameCurrencyManager.GetCoins">
<summary>
获取金币数量
</summary>
</member>
<member name="M:WeChatWASM.GameProtect.Monitor.GameCurrencyManager.AddCoins(System.Int32)">
<summary>
增加金币
</summary>
</member>
<member name="M:WeChatWASM.GameProtect.Monitor.GameCurrencyManager.SpendCoins(System.Int32)">
<summary>
消费金币
</summary>
<returns>是否消费成功</returns>
</member>
<member name="M:WeChatWASM.GameProtect.Monitor.GameCurrencyManager.GetDiamonds">
<summary>
获取钻石数量
</summary>
</member>
<member name="M:WeChatWASM.GameProtect.Monitor.GameCurrencyManager.AddDiamonds(System.Int32)">
<summary>
增加钻石
</summary>
</member>
<member name="M:WeChatWASM.GameProtect.Monitor.GameCurrencyManager.SpendDiamonds(System.Int32)">
<summary>
消费钻石
</summary>
<returns>是否消费成功</returns>
</member>
<member name="T:WeChatWASM.WXBannerAd">
<summary>
Banner 广告,详见 https://developers.weixin.qq.com/minigame/dev/guide/open-ability/ad/banner-ad.html
@ -3125,6 +3204,36 @@
 是否结束
</summary>
</member>
<member name="F:WeChatWASM.ReportGameEventOption.eventId">
<summary>
事件ID开发者自行维护必需
</summary>
</member>
<member name="F:WeChatWASM.ReportGameEventOption.costTime">
<summary>
事件耗时单位ms可选不填时为0
</summary>
</member>
<member name="F:WeChatWASM.ReportGameEventOption.result">
<summary>
事件结果,默认成功(可选)不填时默认成功
</summary>
</member>
<member name="T:WeChatWASM.ReportGameEventResult">
<summary>
reportGameEvent的事件类型
</summary>
</member>
<member name="F:WeChatWASM.ReportGameEventResult.Success">
<summary>
成功事件
</summary>
</member>
<member name="F:WeChatWASM.ReportGameEventResult.Fail">
<summary>
失败事件
</summary>
</member>
<member name="F:WeChatWASM.PageManagerCallbackResult.errCode">
<summary>
错误码,文档可见 https://developers.weixin.qq.com/minigame/dev/api/open-api/openlink/wx.createPageManager.html
@ -3301,7 +3410,7 @@
需要基础库: `2.10.0`
小程序版本
可选值:
- 'develop': 开发版;
- 'develop': 开发版,提交代码审核时默认使用开发版进行审核。;
- 'trial': 体验版;
- 'release': 正式版;
</summary>
@ -3479,6 +3588,14 @@
<member name="F:WeChatWASM.DeviceInfo.platform">
<summary>
客户端平台
可选值:
- 'ios': iOS微信包含 iPhone、iPad;
- 'android': Android微信;
- 'ohos': HarmonyOS 手机端微信;
- 'ohos_pc': HarmonyOS PC微信;
- 'windows': Windows微信;
- 'mac': macOS微信;
- 'devtools': 微信开发者工具;
</summary>
</member>
<member name="F:WeChatWASM.DeviceInfo.system">
@ -3486,6 +3603,16 @@
操作系统及版本
</summary>
</member>
<member name="F:WeChatWASM.DirectAdStatusInfo.isInDirectGameAd">
<summary>
当前是否处于直接广告中
</summary>
</member>
<member name="F:WeChatWASM.DirectAdStatusInfo.isInMask">
<summary>
当前是否处于蒙层阶段
</summary>
</member>
<member name="F:WeChatWASM.EnterOptionsGame.apiCategory">
<summary>
需要基础库: `2.20.0`
@ -3552,6 +3679,11 @@
直播间 id
</summary>
</member>
<member name="F:WeChatWASM.LaunchOptionsGame.hostExtraData">
<summary>
宿主传递的数据,第三方 app 中运行小游戏时返回
</summary>
</member>
<member name="F:WeChatWASM.LaunchOptionsGame.query">
<summary>
启动小游戏的 query 参数
@ -3582,6 +3714,11 @@
shareTicket详见[获取更多转发信息](#)
</summary>
</member>
<member name="F:WeChatWASM.HostExtraData.host_scene">
<summary>
宿主app对应的场景值
</summary>
</member>
<member name="F:WeChatWASM.ClientRect.bottom">
<summary>
下边界坐标单位px
@ -3778,7 +3915,8 @@
可选值:
- 'ios': iOS微信包含 iPhone、iPad;
- 'android': Android微信;
- 'ohos': HarmonyOS微信;
- 'ohos': HarmonyOS 手机端微信;
- 'ohos_pc': HarmonyOS PC微信;
- 'windows': Windows微信;
- 'mac': macOS微信;
- 'devtools': 微信开发者工具;
@ -5601,22 +5739,22 @@
预告状态0可用 1取消 2已用
</summary>
</member>
<member name="F:WeChatWASM.GetChatToolInfoSuccessCallbackResult.cloudID">
<member name="F:WeChatWASM.RequestMidasFriendPaymentSuccessCallbackResult.cloudID">
<summary>
敏感数据对应的云 ID开通[云开发](https://developers.weixin.qq.com/minigame/dev/wxcloud/basis/getting-started.html)的小程序才会返回,可通过云调用直接获取开放数据,详细见[云调用直接获取开放数据](https://developers.weixin.qq.com/minigame/dev/guide/open-ability/signature.html#method-cloud)
</summary>
</member>
<member name="F:WeChatWASM.GetChatToolInfoSuccessCallbackResult.encryptedData">
<member name="F:WeChatWASM.RequestMidasFriendPaymentSuccessCallbackResult.encryptedData">
<summary>
包括敏感数据在内的完整转发信息的加密数据,详细见[加密数据解密算法](https://developers.weixin.qq.com/minigame/dev/guide/open-ability/signature.html)
</summary>
</member>
<member name="F:WeChatWASM.GetChatToolInfoSuccessCallbackResult.errMsg">
<member name="F:WeChatWASM.RequestMidasFriendPaymentSuccessCallbackResult.errMsg">
<summary>
错误信息
</summary>
</member>
<member name="F:WeChatWASM.GetChatToolInfoSuccessCallbackResult.iv">
<member name="F:WeChatWASM.RequestMidasFriendPaymentSuccessCallbackResult.iv">
<summary>
加密算法的初始向量,详细见[加密数据解密算法](https://developers.weixin.qq.com/minigame/dev/guide/open-ability/signature.html)
</summary>
@ -5711,6 +5849,21 @@
实验参数数组,不填则获取所有实验参数
</summary>
</member>
<member name="F:WeChatWASM.GameExptInfo.expt_id">
<summary>
实验ID标识实验
</summary>
</member>
<member name="F:WeChatWASM.GameExptInfo.param_name">
<summary>
参数名称
</summary>
</member>
<member name="F:WeChatWASM.GameExptInfo.param_value">
<summary>
参数值
</summary>
</member>
<member name="F:WeChatWASM.GetGroupEnterInfoOption.allowSingleChat">
<summary>
需要基础库: `3.7.8`
@ -5832,6 +5985,67 @@
本机局域网子网掩码,基础库 2.24.0 开始支持
</summary>
</member>
<member name="F:WeChatWASM.GetLocationOption.altitude">
<summary>
需要基础库: `1.6.0`
传入 true 会返回高度信息,由于获取高度需要较高精确度,会减慢接口返回速度
</summary>
</member>
<member name="F:WeChatWASM.GetLocationOption.highAccuracyExpireTime">
<summary>
需要基础库: `2.9.0`
高精度定位超时时间(ms)指定时间内返回最高精度该值3000ms以上高精度定位才有效果
</summary>
</member>
<member name="F:WeChatWASM.GetLocationOption.isHighAccuracy">
<summary>
需要基础库: `2.9.0`
开启高精度定位
</summary>
</member>
<member name="F:WeChatWASM.GetLocationOption.type">
<summary>
wgs84 返回 gps 坐标gcj02 返回可用于 wx.openLocation 的坐标
</summary>
</member>
<member name="F:WeChatWASM.GetLocationSuccessCallbackResult.accuracy">
<summary>
位置的精确度反应与真实位置之间的接近程度可以理解成10即与真实位置相差10m越小越精确
</summary>
</member>
<member name="F:WeChatWASM.GetLocationSuccessCallbackResult.altitude">
<summary>
需要基础库: `1.2.0`
高度,单位 m
</summary>
</member>
<member name="F:WeChatWASM.GetLocationSuccessCallbackResult.horizontalAccuracy">
<summary>
需要基础库: `1.2.0`
水平精度,单位 m
</summary>
</member>
<member name="F:WeChatWASM.GetLocationSuccessCallbackResult.latitude">
<summary>
纬度,范围为 -90~90负数表示南纬
</summary>
</member>
<member name="F:WeChatWASM.GetLocationSuccessCallbackResult.longitude">
<summary>
经度,范围为 -180~180负数表示西经
</summary>
</member>
<member name="F:WeChatWASM.GetLocationSuccessCallbackResult.speed">
<summary>
速度,单位 m/s
</summary>
</member>
<member name="F:WeChatWASM.GetLocationSuccessCallbackResult.verticalAccuracy">
<summary>
需要基础库: `1.2.0`
垂直精度,单位 mAndroid 无法获取,返回 0
</summary>
</member>
<member name="F:WeChatWASM.GetNetworkTypeSuccessCallbackResult.hasSystemProxy">
<summary>
需要基础库: `2.22.1`
@ -5947,6 +6161,17 @@
- itemSettings 只返回用户勾选过订阅面板中的“总是保持以上选择,不再询问”的订阅消息。
</summary>
</member>
<member name="F:WeChatWASM.GetShareInfoOption.shareTicket">
<summary>
shareTicket详见[获取更多转发信息](#)
</summary>
</member>
<member name="F:WeChatWASM.GetShareInfoOption.timeout">
<summary>
需要基础库: `1.9.90`
超时时间,单位 ms
</summary>
</member>
<member name="F:WeChatWASM.GetShowSplashAdStatusSuccessCallbackResult.code">
<summary>
封面广告组件展示状态码
@ -6516,6 +6741,21 @@
- 'landscapeReverse': 横屏反方向,以 HOME 键在屏幕左侧为反方向;
</summary>
</member>
<member name="F:WeChatWASM.OnDirectAdStatusChangeListenerResult.isEndByAbnormal">
<summary>
当前直玩广告是否由于异常流程而结束(如 下拉/搜索 进入正在直玩广告流程中的游戏)
</summary>
</member>
<member name="F:WeChatWASM.OnDirectAdStatusChangeListenerResult.isInDirectGameAd">
<summary>
当前是否处于直接广告中
</summary>
</member>
<member name="F:WeChatWASM.OnDirectAdStatusChangeListenerResult.isInMask">
<summary>
当前是否处于蒙层阶段
</summary>
</member>
<member name="F:WeChatWASM.ListenerError.message">
<summary>
错误信息,包含堆栈
@ -6911,7 +7151,7 @@
</member>
<member name="F:WeChatWASM.OpenChannelsUserProfileOption.finderUserName">
<summary>
视频号 id
视频号id参考格式为sphcqO59YEPCvoe查看路径为微信客户端->我tab->视频号->右上角.->视频号名字-视频号ID
</summary>
</member>
<member name="F:WeChatWASM.OpenChatToolOption.chatType">
@ -7231,6 +7471,32 @@
自定义维度,基础库 v2.14.0 开始支持可选
</summary>
</member>
<member name="F:WeChatWASM.FacialRecognitionError.errMsg">
<summary>
错误信息
| 错误码 | 错误信息 | 说明 |
| - | - | - |
| 0 | 人脸识别成功 | |
| 2002004 | 人脸识别失败 | |
| 2002006 | 用户取消/超时/不同意,导致未完成人脸识别 | |
| 2002007 | 本用户7天内人脸识别已通过通过日期为XX | |
| 2002008 | 本日已调起过人脸识别 | or本月调用次数已达上限 |
| 2002009 | 无权限发起人脸识别 | |
</summary>
</member>
<member name="F:WeChatWASM.FacialRecognitionError.errCode">
<summary>
错误码
| 错误码 | 错误信息 | 说明 |
| - | - | - |
| 0 | 人脸识别成功 | |
| 2002004 | 人脸识别失败 | |
| 2002006 | 用户取消/超时/不同意,导致未完成人脸识别 | |
| 2002007 | 本用户7天内人脸识别已通过通过日期为XX | |
| 2002008 | 本日已调起过人脸识别 | or本月调用次数已达上限 |
| 2002009 | 无权限发起人脸识别 | |
</summary>
</member>
<member name="F:WeChatWASM.RequestMidasFriendPaymentOption.buyQuantity">
<summary>
购买数量。mode=game 时必填。购买数量。详见 [buyQuantity 限制说明](#buyQuantity限制说明)。
@ -7616,7 +7882,7 @@
</member>
<member name="F:WeChatWASM.SetBackgroundFetchTokenOption.token">
<summary>
自定义的登录态
自定义的登录态。上限 1024 字符。
</summary>
</member>
<member name="F:WeChatWASM.SetClipboardDataOption.data">
@ -9125,5 +9391,11 @@
注册监听录制事件的回调函数。当对应事件触发时,回调函数会被执行
</summary>
</member>
<member name="T:PlayerPrefs">
<summary>
覆盖unity的PlayerPrefs
注意:调用均为同步调用, 容易阻塞游戏主线程造成卡顿,不建议频繁调用
</summary>
</member>
</members>
</doc>

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 9a7c16358edeccc9e6507105d15b2cd3
guid: 847dbac05345125436c7159b5fd0ddb0
DefaultImporter:
externalObjects: {}
userData:

View File

@ -279,7 +279,7 @@ namespace WeChatWASM
/// <summary>
/// [wx.exitChatTool(Object object)](https://developers.weixin.qq.com/minigame/dev/api/chattool/wx.exitChatTool.html)
/// 需要基础库: `3.7.12`
/// 退出聊天工具模式
/// 退出聊天工具开放能力模式
/// </summary>
public static void ExitChatTool(ExitChatToolOption callback)
{
@ -675,6 +675,7 @@ namespace WeChatWASM
/// | 8 | 当天(自然日)赞官方贴子数 | 无需传入 | |
/// | 9 | 当天(自然日)评论官方贴子数 | 无需传入 | |
/// | 10 | 当天(自然日)发表到本圈子话题的贴子数 | 传入话题id从mp-游戏圈话题管理处获取 | |
/// | 11 | 用户最近一次推荐游戏时间 | 无需传入 | 秒级时间戳 | |
/// **encryptedData 解密后得到的 GameClubData 的结构**
/// | 属性 | 类型 | 说明 |
/// | ------- | ------- | -------------------------------------- |
@ -691,9 +692,22 @@ namespace WeChatWASM
}
/// <summary>
/// [wx.getGameExptInfo(Object object)](https://developers.weixin.qq.com/minigame/dev/api/data-analysis/wx.getGameExptInfo.html)
/// [wx.getGameExptInfo(Object options)](https://developers.weixin.qq.com/minigame/dev/api/data-analysis/wx.getGameExptInfo.html)
/// 需要基础库: `3.8.8`
/// 给定实验参数数组,获取对应的实验参数值
/// **示例代码**
/// ```js
/// wx.getGameExptInfo({
/// keyList: ['experiment_key1', 'experiment_key2'],
/// success(res) {
/// res.list.forEach((expParam) => {
/// console.log('实验ID:', expParam.expt_id);
/// console.log('参数名:', expParam.param_name);
/// console.log('参数值:', expParam.param_value);
/// })
/// }
/// });
/// ```
/// </summary>
public static void GetGameExptInfo(GetGameExptInfoOption callback)
{
@ -790,6 +804,14 @@ namespace WeChatWASM
WXSDKManagerHandler.Instance.GetLocalIPAddress(callback);
}
/// <summary>
/// [wx.getLocation(Object object)](https://developers.weixin.qq.com/minigame/dev/api/location/wx.getLocation.html)
/// </summary>
public static void GetLocation(GetLocationOption callback)
{
WXSDKManagerHandler.Instance.GetLocation(callback);
}
/// <summary>
/// [wx.getNetworkType(Object object)](https://developers.weixin.qq.com/minigame/dev/api/device/network/wx.getNetworkType.html)
/// 获取网络类型
@ -916,6 +938,15 @@ namespace WeChatWASM
WXSDKManagerHandler.Instance.GetSetting(callback);
}
/// <summary>
/// [wx.getShareInfo(Object object)](https://developers.weixin.qq.com/minigame/dev/api/share/wx.getShareInfo.html)
/// 需要基础库: `1.1.0`
/// </summary>
public static void GetShareInfo(GetShareInfoOption callback)
{
WXSDKManagerHandler.Instance.GetShareInfo(callback);
}
/// <summary>
/// [wx.getShowSplashAdStatus(Object object)](https://developers.weixin.qq.com/minigame/dev/api/ad/wx.getShowSplashAdStatus.html)
/// 需要基础库: `3.7.8`
@ -1262,9 +1293,6 @@ namespace WeChatWASM
/// 从 2.3.0 版本开始,若用户未点击小程序页面任意位置,则开发者将无法调用此接口自动跳转至其他小程序。
/// ##### 需要用户确认跳转
/// 从 2.3.0 版本开始,在跳转至其他小程序前,将统一增加弹窗,询问是否跳转,用户确认后才可以跳转其他小程序。如果用户点击取消,则回调 `fail cancel`。
/// ##### 无需声明跳转名单,不限跳转数量(众测中)
/// 1. 从2020年4月24日起使用跳转其他小程序功能将无需在全局配置中声明跳转名单调用此接口时将不再校验所跳转的 AppID 是否在 navigateToMiniProgramAppIdList 中。
/// 2. 从2020年4月24日起跳转其他小程序将不再受数量限制使用此功能时请注意遵守运营规范。
/// **运营规范**
/// 平台将坚决打击小程序盒子等互推行为,使用此功能时请严格遵守[《微信小程序平台运营规范》](https://developers.weixin.qq.com/miniprogram/product/#_5-10-%E4%BA%92%E6%8E%A8%E8%A1%8C%E4%B8%BA),若发现小程序违反运营规范将被下架处理。
/// **关于调试**
@ -1700,6 +1728,45 @@ namespace WeChatWASM
WXSDKManagerHandler.Instance.ReportScene(callback);
}
/// <summary>
/// [wx.requestFacialRecognition(Object object)](https://developers.weixin.qq.com/minigame/dev/api/open-api/account-info/wx.requestFacialRecognition.html)
/// 需要基础库: `3.11.2`
/// 发起人脸识别验证,用于对可疑用户进行身份验证和防沉迷检查。该接口会调起微信的人脸识别系统,验证用户身份以确保游戏安全和合规性。
/// **处理流程**
/// 1. 开发者调用 `wx.requestFacialRecognition` 发起人脸识别。
/// 2. 系统根据策略判定是否需要展示授权弹窗。
/// - 若判定为"不展示弹窗":立即回调结果,示例:`{ errCode: 0, errMsg: '本用户7天内人脸识别已通过' }`
/// - 若判定为"需展示弹窗":进入步骤 3。
/// 3. 系统展示授权弹窗。
/// - 玩家拒绝:立即回调 `fail``errCode = 2002006`
/// - 玩家同意:进入步骤 4。
/// 4. 系统开始进行人脸识别验证
/// - 玩家在跳转页面中完成活体/人脸识别;关闭页面返回游戏。
/// 5. 系统回调最终识别结果返回
/// **示例代码**
/// ```js
/// wx.requestFacialRecognition({
/// success(res) {
/// // 人脸识别通过或 7 天内已通过
/// // 形如:{ errCode: 0, errMsg: 'ok' }
/// console.log('requestFacialRecognition success:', res)
/// },
/// fail(err) {
/// // 失败或受限等场景
/// console.log('requestFacialRecognition fail:', err)
/// },
/// complete(res) {
/// // 无论成功失败均会触发
/// console.log('requestFacialRecognition complete:', res)
/// }
/// })
/// ```
/// </summary>
public static void RequestFacialRecognition(RequestFacialRecognitionOption callback)
{
WXSDKManagerHandler.Instance.RequestFacialRecognition(callback);
}
/// <summary>
/// [wx.requestMidasFriendPayment(Object object)](https://developers.weixin.qq.com/minigame/dev/api/midas-payment/wx.requestMidasFriendPayment.html)
/// 需要基础库: `2.11.0`
@ -2043,6 +2110,8 @@ namespace WeChatWASM
/// [wx.setDeviceOrientation(Object object)](https://developers.weixin.qq.com/minigame/dev/api/device/orientation/wx.setDeviceOrientation.html)
/// 需要基础库: `2.26.0`
/// 切换横竖屏。接口调用成功后会触发 wx.onDeviceOrientationChange 事件
/// **注意**
/// - PC小程序处于全屏时无法切换横竖屏。
/// </summary>
public static void SetDeviceOrientation(SetDeviceOrientationOption callback)
{
@ -2763,6 +2832,15 @@ namespace WeChatWASM
WXSDKManagerHandler.Instance.ReportEvent(eventId, data);
}
/// <summary>
/// [wx.reportMonitor(string name, number value)](https://developers.weixin.qq.com/minigame/dev/api/data-analysis/wx.reportMonitor.html)
/// 需要基础库: `2.1.2`
/// </summary>
public static void ReportMonitor(string name, double value)
{
WXSDKManagerHandler.Instance.ReportMonitor(name, value);
}
/// <summary>
/// [wx.reportPerformance(Number id, Number value, String|Array dimensions)](https://developers.weixin.qq.com/minigame/dev/api/base/performance/wx.reportPerformance.html)
/// 需要基础库: `2.10.0`
@ -3121,6 +3199,34 @@ namespace WeChatWASM
WXSDKManagerHandler.Instance.OffDeviceOrientationChange(result);
}
/// <summary>
/// [wx.onDirectAdStatusChange(function listener)](https://developers.weixin.qq.com/minigame/dev/api/ad/wx.onDirectAdStatusChange.html)
/// 需要基础库: `3.11.2`
/// 监听监听直玩广告状态变化
/// **示例代码**
/// ```js
/// wx.onDirectAdStatusChange(res => {
/// // 会有如下的几种状态值组合
/// // a) { isInMask: true, isInDirectGameAd: true } -> 表示当前正在直玩广告 且 未戳破蒙层
/// // b) { isInMask: false, isInDirectGameAd: true } -> 表示当前正在直玩广告 且 戳破了蒙层
/// // c) { isInMask: false, isInDirectGameAd: false, isEndByAbnormal: false }, -> 表示倒计时结束了,并且选择了继续玩
/// // d) { isInMask: false, isInDirectGameAd: false, isEndByAbnormal: true }, -> 表示由于异常流程而结束
/// console.log(res.isInMask)
/// console.log(res.isInDirectGameAd)
/// console.log(res.isEndByAbnormal)
/// })
/// ```
/// </summary>
public static void OnDirectAdStatusChange(Action<OnDirectAdStatusChangeListenerResult> result)
{
WXSDKManagerHandler.Instance.OnDirectAdStatusChange(result);
}
public static void OffDirectAdStatusChange(Action<OnDirectAdStatusChangeListenerResult> result)
{
WXSDKManagerHandler.Instance.OffDirectAdStatusChange(result);
}
/// <summary>
/// [wx.onError(function listener)](https://developers.weixin.qq.com/minigame/dev/api/base/app/app-event/wx.onError.html)
/// 监听全局错误事件
@ -3495,21 +3601,21 @@ namespace WeChatWASM
/// 需要基础库: `2.8.1`
/// 监听用户主动截屏事件。用户使用系统截屏按键截屏时触发,只能注册一个监听
/// **示例代码**
/// 页面要先调用wx.showShareMenu()来允许调用
/// ```js
/// wx.onUserCaptureScreen(function (res) {
/// console.log('用户截屏了')
/// return {
/// query: "parameter=test", // 通过截屏图片打开小程序的query参数
/// promise: new Promise((resolve) => { // 通过promise延时传递小程序的query参数
/// setTimeout(() => {
/// resolve({
/// query: "parameter=test2",
/// })
/// }, 1000) // 在1秒内对query进行解析
/// })
/// setTimeout(() => {
/// resolve({
/// query: "parameter=test2",
/// })
/// }, 1000) // 在1秒内对query进行解析
/// })
/// }
/// }
/// )
/// })
/// ```
/// </summary>
public static void OnUserCaptureScreen(Action<OnUserCaptureScreenListenerResult> result)
@ -3643,7 +3749,7 @@ namespace WeChatWASM
/// <summary>
/// [wx.onCopyUrl(function listener)](https://developers.weixin.qq.com/minigame/dev/api/share/wx.onCopyUrl.html)
/// 需要基础库: `2.14.3`
/// 监听用户点击右上角菜单的「复制链接」按钮时触发的事件。本接口为 Beta 版本,暂只在 Android 平台支持。
/// 监听用户点击右上角菜单的「复制链接」按钮时触发的事件。
/// </summary>
public static void OnCopyUrl(Action<Action<OnCopyUrlListenerResult>> callback)
{
@ -3831,6 +3937,23 @@ namespace WeChatWASM
return WXSDKManagerHandler.GetDeviceInfo();
}
/// <summary>
/// [Object wx.getDirectAdStatusSync()](https://developers.weixin.qq.com/minigame/dev/api/ad/wx.getDirectAdStatusSync.html)
/// 需要基础库: `3.11.2`
/// 获取直玩广告组件展示状态。
/// **示例代码**
/// ```js
/// const statusInfo = wx.getDirectAdStatusSync();
/// console.log(statusInfo.isInMask) // 当前是否在蒙层阶段
/// console.log(statusInfo.isInDirectGameAd) // 当前是否在直玩广告中
/// ```
/// </summary>
/// <returns></returns>
public static DirectAdStatusInfo GetDirectAdStatusSync()
{
return WXSDKManagerHandler.GetDirectAdStatusSync();
}
/// <summary>
/// [Object wx.getEnterOptionsSync()](https://developers.weixin.qq.com/minigame/dev/api/base/app/life-cycle/wx.getEnterOptionsSync.html)
/// 需要基础库: `2.13.2`
@ -4045,19 +4168,19 @@ namespace WeChatWASM
}
/// <summary>
/// [[ImageData](https://developers.weixin.qq.com/minigame/dev/api/render/image/ImageData.html) wx.createImageData(number width, number height)](https://developers.weixin.qq.com/minigame/dev/api/render/image/wx.createImageData.html)
/// [[ImageData](https://developers.weixin.qq.com/minigame/dev/api/render/image/ImageData.html) wx.createImageData(number width, number height, Uint8ClampedArray data)](https://developers.weixin.qq.com/minigame/dev/api/render/image/wx.createImageData.html)
/// 需要基础库: `3.4.10`
/// 这里有两种使用方法, 一种是指定ImageData的宽和高, 另外一种是使用ImageData, 通过它本身的宽高尺寸来构建新的对象。
/// 这里有两种使用方法, 一种是指定ImageData的宽和高, 另外一种使用已有的ImageData的图像二进制数据来构建新的对象。
/// **示例代码**
/// ```js
/// const imageData1 = wx.createImageData(100, 100)
/// const imageData2 = wx.createImageData(imageData1)
/// const imageData1 = wx.createImageData(100, 100)
/// const imageData2 = wx.createImageData(imageData1.data, 100, 100)
/// ```
/// </summary>
/// <returns></returns>
public static ImageData CreateImageData(double width, double height)
public static ImageData CreateImageData(double width, double height, int[] data)
{
return WXSDKManagerHandler.CreateImageData(width, height);
return WXSDKManagerHandler.CreateImageData(width, height, data);
}
/// <summary>

View File

@ -1136,6 +1136,14 @@ namespace WeChatWASM
{
WXSDKManagerHandler.Instance.NotifyMiniProgramPlayableStatus(option);
}
/// <summary>
/// 上报自定义打点数据
/// </summary>
/// <param name="option"></param>
public static void ReportGameEvent(ReportGameEventOption option)
{
WXSDKManagerHandler.Instance.ReportGameEvent(option);
}
#endregion
#region
/// <summary>

View File

@ -0,0 +1,186 @@
#if UNITY_WEBGL || WEIXINMINIGAME || UNITY_EDITOR
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems;
using UnityEngine.UI;
/**
* WxTouch输入模块 WXTouchInputOverride 使
* Button事件调用
* Button ExecuteEvents.pointerClickHandler StandaloneInputModule
* WXTouchInputOverride 使 StandaloneInputModule
*/
public class WXTouchInputModule : StandaloneInputModule
{
private const float doubleClickTime = 0.3f;
public override void Process()
{
if (!eventSystem.isFocused && ShouldIgnoreEventsOnNoFocus())
return;
bool usedEvent = SendUpdateEventToSelectedObject();
if (!ProcessTouchEvents() && input.mousePresent)
ProcessMouseEvent();
if (eventSystem.sendNavigationEvents)
{
if (!usedEvent)
usedEvent |= SendMoveEventToSelectedObject();
if (!usedEvent)
SendSubmitEventToSelectedObject();
}
}
private bool ShouldIgnoreEventsOnNoFocus()
{
#if UNITY_EDITOR
return !UnityEditor.EditorApplication.isRemoteConnected;
#else
return true;
#endif
}
private bool ProcessTouchEvents()
{
for (int i = 0; i < input.touchCount; ++i)
{
Touch touch = input.GetTouch(i);
if (touch.type == TouchType.Indirect)
continue;
bool released;
bool pressed;
var pointer = GetTouchPointerEventData(touch, out pressed, out released);
ProcessTouchPress(pointer, pressed, released);
if (!released)
{
ProcessMove(pointer);
ProcessDrag(pointer);
}
else
RemovePointerData(pointer);
}
return input.touchCount > 0;
}
// released 后会拦截 Button 的 ExecuteEvents.pointerClickHandler ,其余逻辑与 StandaloneInputModule 保持一致
protected new void ProcessTouchPress(PointerEventData pointerEvent, bool pressed, bool released)
{
var currentOverGo = pointerEvent.pointerCurrentRaycast.gameObject;
// PointerDown notification
if (pressed)
{
pointerEvent.eligibleForClick = true;
pointerEvent.delta = Vector2.zero;
pointerEvent.dragging = false;
pointerEvent.useDragThreshold = true;
pointerEvent.pressPosition = pointerEvent.position;
pointerEvent.pointerPressRaycast = pointerEvent.pointerCurrentRaycast;
DeselectIfSelectionChanged(currentOverGo, pointerEvent);
if (pointerEvent.pointerEnter != currentOverGo)
{
// send a pointer enter to the touched element if it isn't the one to select...
HandlePointerExitAndEnter(pointerEvent, currentOverGo);
pointerEvent.pointerEnter = currentOverGo;
}
var resetDiffTime = Time.unscaledTime - pointerEvent.clickTime;
if (resetDiffTime >= doubleClickTime)
{
pointerEvent.clickCount = 0;
}
// search for the control that will receive the press
// if we can't find a press handler set the press
// handler to be what would receive a click.
var newPressed = ExecuteEvents.ExecuteHierarchy(currentOverGo, pointerEvent, ExecuteEvents.pointerDownHandler);
var newClick = ExecuteEvents.GetEventHandler<IPointerClickHandler>(currentOverGo);
// didnt find a press handler... search for a click handler
if (newPressed == null)
newPressed = newClick;
// Debug.Log("Pressed: " + newPressed);
float time = Time.unscaledTime;
if (newPressed == pointerEvent.lastPress)
{
var diffTime = time - pointerEvent.clickTime;
if (diffTime < doubleClickTime)
++pointerEvent.clickCount;
else
pointerEvent.clickCount = 1;
pointerEvent.clickTime = time;
}
else
{
pointerEvent.clickCount = 1;
}
pointerEvent.pointerPress = newPressed;
pointerEvent.rawPointerPress = currentOverGo;
pointerEvent.pointerClick = newClick;
pointerEvent.clickTime = time;
// Save the drag handler as well
pointerEvent.pointerDrag = ExecuteEvents.GetEventHandler<IDragHandler>(currentOverGo);
if (pointerEvent.pointerDrag != null)
ExecuteEvents.Execute(pointerEvent.pointerDrag, pointerEvent, ExecuteEvents.initializePotentialDrag);
}
// PointerUp notification
if (released)
{
// Debug.Log("Executing pressup on: " + pointer.pointerPress);
ExecuteEvents.Execute(pointerEvent.pointerPress, pointerEvent, ExecuteEvents.pointerUpHandler);
// Debug.Log("KeyCode: " + pointer.eventData.keyCode);
// see if we mouse up on the same element that we clicked on...
var pointerClickHandler = ExecuteEvents.GetEventHandler<IPointerClickHandler>(currentOverGo);
// PointerClick and Drop events
if (pointerEvent.pointerClick == pointerClickHandler && pointerEvent.eligibleForClick)
{
bool shouldHandleInWx = currentOverGo != null && currentOverGo.GetComponentInParent<UnityEngine.UI.Button>() != null;
if (!shouldHandleInWx)
{
ExecuteEvents.Execute(pointerEvent.pointerClick, pointerEvent, ExecuteEvents.pointerClickHandler);
}
}
if (pointerEvent.pointerDrag != null && pointerEvent.dragging)
{
ExecuteEvents.ExecuteHierarchy(currentOverGo, pointerEvent, ExecuteEvents.dropHandler);
}
pointerEvent.eligibleForClick = false;
pointerEvent.pointerPress = null;
pointerEvent.rawPointerPress = null;
pointerEvent.pointerClick = null;
if (pointerEvent.pointerDrag != null && pointerEvent.dragging)
ExecuteEvents.Execute(pointerEvent.pointerDrag, pointerEvent, ExecuteEvents.endDragHandler);
pointerEvent.dragging = false;
pointerEvent.pointerDrag = null;
// send exit events as we need to simulate this on touch up on touch device
ExecuteEvents.ExecuteHierarchy(pointerEvent.pointerEnter, pointerEvent, ExecuteEvents.pointerExitHandler);
pointerEvent.pointerEnter = null;
}
//m_InputPointerEvent = pointerEvent;
}
}
#endif

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 6226ce8c6cf3dd24d95cfa430c9755d3
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -21,17 +21,17 @@ internal class TouchData
* 使WX的触控接口重新覆盖Unity的BaseInput关于触控方面的接口
* StandaloneInputModule.inputOverride的方式来实现
*/
[RequireComponent(typeof(StandaloneInputModule))]
[RequireComponent(typeof(WXTouchInputModule))]
public class WXTouchInputOverride : BaseInput
{
private bool _isInitWechatSDK;
private readonly List<TouchData> _touches = new List<TouchData>();
private StandaloneInputModule _standaloneInputModule = null;
private WXTouchInputModule _standaloneInputModule = null;
protected override void Awake()
{
base.Awake();
_standaloneInputModule = GetComponent<StandaloneInputModule>();
_standaloneInputModule = GetComponent<WXTouchInputModule>();
}
protected override void OnEnable()
@ -138,11 +138,16 @@ public class WXTouchInputOverride : BaseInput
Button button = selectedObject.GetComponent<Button>();
if (button != null)
{
int clickListenerCount = button.onClick.GetPersistentEventCount();
if (clickListenerCount > 0) {
button.onClick.SetPersistentListenerState(0, UnityEventCallState.EditorAndRuntime);
button.onClick.Invoke();
button.onClick.SetPersistentListenerState(0, UnityEventCallState.Off);
bool touchInButtonArea = false;
foreach (var wxTouch in touchEvent.changedTouches)
{
TouchData data = FindTouchData(wxTouch.identifier);
touchInButtonArea = touchInButtonArea || IsTouchInButtonArea(data, button);
}
if(touchInButtonArea)
{
button.OnPointerClick(new PointerEventData(EventSystem.current));
// button.onClick.Invoke();
}
}
#if !UNITY_EDITOR
@ -175,6 +180,12 @@ public class WXTouchInputOverride : BaseInput
}
}
private static bool IsTouchInButtonArea(TouchData data, Button button)
{
RectTransform rect = button.GetComponent<RectTransform>();
return RectTransformUtility.RectangleContainsScreenPoint(rect, data.touch.position, null);
}
private void OnWxTouchCancel(OnTouchStartListenerResult touchEvent)
{
foreach (var wxTouch in touchEvent.changedTouches)

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 63d1faae0c9fe2b3822be1df70075b2e
guid: e9130caa36b143e0aa86538cd725ca18
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 5624c1ea377ab73568ec5d8cc87ba289
guid: 4caee136dc3fcdf39cd06c03f7747411
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 1c2af028fd3238e8f04faeb2aa3ade47
guid: 4ce0a993f14e5c79c8fd409be2fa2b57
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: fe7c8aaeb34de118ea1916726cab997a
guid: cc639d105f00a910b79c857d1dfa1c35
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: d5a5e3c3f589846c6f549483ead1060f
guid: 8d940ea998a41dbe454dbbfbded19247
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: f039015c8d9aa097c242e0ac382a03a5
guid: 6fd32b23107b11235858ba03165bf50f
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 1b65a8abafe0bade0236e4fd4d839856
guid: f2efd63216d2e43a3307e5ac3b28bb72
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 6637da07d51fde3aa60e2345ef04fb54
guid: d31a8a43f88675e15d7194c2770d26b9
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 5258dfb6a17d62965c90a5d41bdb820e
guid: edebb5fe51b7a79c9fe58bcaf2da5335
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 649f86cd85ab2b28f250bcdc19c80221
guid: 7b197f31daf1c69c4d5945226a20d092
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 1732bc62c1ae0737086c7e3a61fef8a6
guid: e6bcc56b1abc18064f81760fa6dc5e31
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: f1e7bfb8fcef5db27a2b1e59e2196be3
guid: f2ec2650929b14417ec7f4d3198bf444
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: d450e59ef56e1edbb753bd466e3a4b4e
guid: cde6bd8ca4cd22568f2aaa802d5eb030
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 9d7a6105f79e6fe0257c04dac5ef5512
guid: 702417f88c6acdc642758c3ae72c500f
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 0dcc3e1850c18a852a957781e000801e
guid: 8f9774cc08a2caf65c3e6e9d2a19c196
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 3cb13c7d868de2fddd8bc54c64b1aa26
guid: a7fec2e0d6dc12b3f5f5ef778b27943b
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: e5f19ac1a340e5d30e1532a723d3a531
guid: a6d9068ade3e64637f4c8bef5bb619bb
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 5f9d6b4ac2e5f671b60c199483cf38d5
guid: 0bb130e87576470538af01e0d3bfd095
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: a9f0d33ecc5e83baf0afa7ee45652168
guid: fb06dc7f6e89522d0804bbfb8c1873df
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 571053761e12c021c647cbc8d6427265
guid: b721a9a31faf50bca8d168ddc4e389b0
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 9615fa76c879e0ad84a9c0f23c394cd1
guid: 758828e33c5606870e12d50de7fb6166
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: a8a5aa18c504fa1bfc7932ad4b5b5c9a
guid: f4a7e84ed1bbfb57fb1ec44c88fd9813
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 46cb1cfa0fcb8383b4c4e98021dbf915
guid: 91af51ddb40a49be0e94ca301850e0fd
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 2c5e1b346e82b9f95e3c7607c437f909
guid: 0eb52d2103888b452497a71063460ed7
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 818f48ab29541f227feb9a653ccb44ec
guid: efddcf7e6a139389b288cda783f8911b
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: b8495a7e375e78cf9f521d4adb605a81
guid: b8286fbf2cd6b758acda586eaffb1cdb
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 42ca90b4e87fd0ac63e5da1b8fafcb8b
guid: 314c39f0f9b454518ac48dbe34c1df10
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 6f632f7d6f2f6a3eb721c591178eb19c
guid: 434768e76fe757491814750855a528f0
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: f06a43042c9b0589f799d2edaaa2700a
guid: 55aab3ce711f8562993bb4eb2872a366
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: fd31744e2454c091e3bf9de149b887cb
guid: 6c8efc86d93658127f9bb79c766c17bb
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 071e18244d11ecc6c46abf8056c2eee7
guid: cfc527aa516b7ee15e5308193e069065
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 8428ec34af6cdb7016ece3225aa30b1e
guid: b21f75bf594c16612d6435bdc2067411
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: f806dfa2cceda1885f09d4bb329a7436
guid: 72b86dc6c07d0fb1abc4d57e41f48130
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 0cdc747363c29ddf54b63d86eb6bd2c9
guid: c442ba947f363cf950be16db4a8f757b
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 41a1409087f24ef13fa0261d717f55a2
guid: 48af8fb8f920225c1b73756911c0ec4b
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: b26f3e8b7f88c7023ce119fab71f3574
guid: 3f3160688488d5540cefba558a8436ac
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: c45726df74db8e8214536632a157d130
guid: 6f9c98a4adba956ccff77b8f631c98b5
DefaultImporter:
externalObjects: {}
userData:

View File

@ -61,6 +61,10 @@ export const ResType = {
platform: 'string',
system: 'string',
},
DirectAdStatusInfo: {
isInDirectGameAd: 'bool',
isInMask: 'bool',
},
EnterOptionsGame: {
apiCategory: 'string',
query: 'object',
@ -79,12 +83,16 @@ export const ResType = {
feedId: 'string',
},
LaunchOptionsGame: {
hostExtraData: 'HostExtraData',
query: 'object',
referrerInfo: 'EnterOptionsGameReferrerInfo',
scene: 'number',
chatType: 'number',
shareTicket: 'string',
},
HostExtraData: {
host_scene: 'string',
},
ClientRect: {
bottom: 'number',
height: 'number',
@ -531,7 +539,7 @@ export const ResType = {
status: 'number',
errMsg: 'string',
},
GetChatToolInfoSuccessCallbackResult: {
RequestMidasFriendPaymentSuccessCallbackResult: {
cloudID: 'string',
encryptedData: 'string',
errMsg: 'string',
@ -575,9 +583,14 @@ export const ResType = {
errMsg: 'string',
},
GetGameExptInfoSuccessCallbackResult: {
list: 'object',
list: 'GameExptInfo[]',
errMsg: 'string',
},
GameExptInfo: {
expt_id: 'number',
param_name: 'string',
param_value: 'string',
},
GetGroupEnterInfoError: {
errMsg: 'string',
errCode: 'number',
@ -611,6 +624,16 @@ export const ResType = {
localip: 'string',
netmask: 'string',
},
GetLocationSuccessCallbackResult: {
accuracy: 'number',
altitude: 'number',
horizontalAccuracy: 'number',
latitude: 'number',
longitude: 'number',
speed: 'number',
verticalAccuracy: 'number',
errMsg: 'string',
},
GetNetworkTypeSuccessCallbackResult: {
hasSystemProxy: 'bool',
networkType: 'string',
@ -773,6 +796,11 @@ export const ResType = {
OnDeviceOrientationChangeListenerResult: {
value: 'string',
},
OnDirectAdStatusChangeListenerResult: {
isEndByAbnormal: 'bool',
isInDirectGameAd: 'bool',
isInMask: 'bool',
},
ListenerError: {
message: 'string',
},
@ -927,6 +955,10 @@ export const ResType = {
eventType: 'number',
branchDim: 'string',
},
FacialRecognitionError: {
errMsg: 'string',
errCode: 'number',
},
MidasFriendPaymentError: {
errMsg: 'string',
errCode: 'number',
@ -961,7 +993,7 @@ export const ResType = {
errMsg: 'string',
},
RequestSubscribeMessageSuccessCallbackResult: {
anyKeyWord: 'string',
anyKeyWord: 'object',
errMsg: 'string',
},
RequestSubscribeSystemMessageSuccessCallbackResult: {

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: e1ff465eeff8bb68a7ef6f470f9df43e
guid: e851e486231c728048835815072f1daf
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 11a625f8c942af6659141c2ed08e88bf
guid: 1eab0da78de4ce7379ce593a66cdcddc
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 2d0406cff0b94f85339ef42e40592cb3
guid: 3ac1518a937c9c2e8341ff316c2e8c30
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 5565a38feff47752d42ed0956be53fbc
guid: 546943b4b9562a096ae60a2cb85e44d8
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 3f7d00d37b8c3101347e058f34c2606b
guid: 9881ece446463ce03c4f7253f3ab9ef8
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 693d68ec16fb9e59726dbf543811d078
guid: 675a6d8ce5b44a815c0af993fbc347c6
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 585b552bda8993f98993ee9f657be508
guid: e996efd39c8f35d380b74d9d9cca62fa
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: a347cd87025f3f096305fd0839299180
guid: c13b526655507a1ff4be3177ce52c018
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 3331dfe18dce653646e500be1d840e62
guid: 8720ec4ba94b53806a64e9480f53ab13
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: bcec1336c9e84b66667eca2337a5aef8
guid: 579f6fd81258f19153441b8256d6a291
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 430f4be595bf27f0299b3e623273b447
guid: 24624557e23b688fda783cfed3b8cbd5
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 51fbf3d9fb47bceba3aea6fd5e514b4a
guid: 281764747bf25617ae736300ac0bb500
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: cbdb00088a741e35fa982b52ad853d10
guid: 81ae409121cd93214da620e475c2b229
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: d1e8fcb3158c70d492bd5ef9c22d5d43
guid: 3dcae2bdd11d365f5d225ec102ea45b2
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 8494a8995d13f3f060216a006e2084ba
guid: 20cb228ad3bf8223049a9c4afe11ee5c
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: f317595987bcfc1970d85b76285feb7a
guid: 0720de96cfd10d12bf271beec0673f77
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 586923c4a1afcd10ba04e19aa2cc9b1e
guid: 0b8c2245349b743f7a519a015fcaabee
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 99b1052d738dcc8c3755ce134f2e5ec3
guid: 9063b5dfac5cd9cdb2df7b809187f4e9
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: b8581962e774a9409f39ccf36c10c832
guid: 3ebcc87fe4a21d3c8cc2f2ac72407d88
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 9398fdf38caa7d500d31d796109f4c11
guid: 3662c242735473719f1bf97259e224c2
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: d8c78aab41df325558a8be3ed0e2cb27
guid: 1cf2667f8e07d92708a2c898ea545f9e
DefaultImporter:
externalObjects: {}
userData:

View File

@ -23,7 +23,7 @@
],
"plugins": {
"UnityPlugin": {
"version": "1.2.88",
"version": "1.2.91",
"provider": "wxe5a48f1ed5f544b7",
"contexts": [
{

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 3e31a4f8435b18625512d8dc0eba3936
guid: 128a3a07006ee724dd64e30673e5ed35
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 1ead7f0999a94d278ac3e498e33f2341
guid: 237aa2723f99a32b50580d327a0c6281
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 4af9d566f83cc012e5ba1c893e35c5c9
guid: 3b15548530b7a778b3ee99f1f6dce724
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 6ca73726ca0ce6a0705ce8b5474d917e
guid: c347ba1341d7df95842343413d44c51c
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: e2786ad3b6f3f5f5b96ae1f0eaeea505
guid: a78896a9fa91398b853c4688685f48fc
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: b46908ec1f4ec5a6b83439f925d2ec62
guid: b52ad65b9172404c478f59e5931be313
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 292d361b03f539473b39fc9228e6a5f4
guid: f9fb985ce0c5a98e4e2d2890250f4dd4
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: d64fa8917d096a270430e8f8e960238d
guid: aa5ab30eca81fcf00010743f2c89c0bd
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: ebcbdd084252605554de20de7b08f9f2
guid: b84c7fb3e795d438ec400ce65593645d
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 4f344f51e19893cd800ecea3b5f00742
guid: 4a9b8d432523d3de1e01a87131b62a67
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: bb16f40cd37e08ba0808b40226996b83
guid: 6184befbff6440bc60887d30f528dd9f
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 362ee051aa8697223d7adb6ef3d68fc5
guid: dfa407e1a053c1e7418fce8d3e4dfe0a
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 24529c0dcf07d59036bd95daf2e527af
guid: d4854e3b56a54b8157d936d3db01af95
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: a35589680f72729f4384628ead740a44
guid: 33309e0d6732b2a23da62c218aa2fc38
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: e5a34f5b2e32a6d876298d20dc0e3037
guid: 9cd907e7e917cd097a5b3126587df6a7
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: d99d97b65c108ffa49fa5ac53245e402
guid: b3e7072bb38b9a6be9d71ad20724d4f9
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 2cdfe70dcb00676e87f3b3a3b53d145a
guid: 87da309e9a243c87c876be867f1a3a76
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: d2cf4cbc9a93a34b339d31cd16ce0c27
guid: 8791e15f7c1ca01fdc7b1965a2667d41
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: a6fea489e141d64c1157f53bcfc3df29
guid: dadd60eee5f46f4cba19dfa5cad284ce
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: a24ff80a18c1eff4f53ced6e13191d5e
guid: b84157da8a23712006e16a0b8222948c
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 6bae495feba86a92fd41d4aba36cf2c7
guid: f5b519e865089139d9b7529105af1bb0
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: def042ca10ecef83693d385932a27b0a
guid: e81df96400bac3b28f135eb23834b728
DefaultImporter:
externalObjects: {}
userData:

Some files were not shown because too many files have changed in this diff Show More