diff --git a/CHANGELOG.md b/CHANGELOG.md index dc8ab489b..ec60dd1ff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,18 @@ Removed - 删除功能/接口 Fixed - 修复问题 Others - 其他 --> +## 2024-12-25 【预发布】 +PackageManager(git URL): https://github.com/wechat-miniprogram/minigame-tuanjie-transform-sdk.git#pre-v0.1.24 +### Feature +* 普通: OffShareMessageToFriend支持 +### Fixed +* 普通: reserveChannelsLive补充回调参数 +* 普通: 低基础库版本报错修复 +* 普通: BannerAd.OnResize回调报错修复 +* 普通: requestMidasPaymentGameItem修复 +* 普通: WriteSync接口无法正常返回已写入的字节数 +* 普通: ReadSync接口无法正常调用 + ## 2024-12-18 【重要更新】 ### Feature * 普通: 开放数据域支持screenCanvas diff --git a/Editor/WXConvertCore.cs b/Editor/WXConvertCore.cs index 1995ae4ca..a2a5e9dca 100644 --- a/Editor/WXConvertCore.cs +++ b/Editor/WXConvertCore.cs @@ -119,6 +119,7 @@ namespace WeChatWASM CheckBuildTarget(); Init(); ProcessWxPerfBinaries(); + MakeEnvForLuaAdaptor(); // JSLib SettingWXTextureMinJSLib(); UpdateGraphicAPI(); @@ -318,7 +319,7 @@ namespace WeChatWASM { // wx_perf_2021.a - bool bShouldEnablePerf2021Plugin = config.CompileOptions.enablePerfAnalysis && IsCompatibleWithUnity202103To202203(); + bool bShouldEnablePerf2021Plugin = config.CompileOptions.enablePerfAnalysis && IsCompatibleWithUnity202102To202203(); var wxPerf2021Importer = AssetImporter.GetAtPath(wxPerfPlugins[2]) as PluginImporter; #if PLATFORM_WEIXINMINIGAME @@ -331,6 +332,127 @@ namespace WeChatWASM AssetDatabase.Refresh(); } + /** + * Lua Adaptor Settings. + */ + + private static bool GetRequiredLuaHeaderFiles(out Dictionary luaPaths) + { + luaPaths = new Dictionary() + { + {"lua.h", null}, + {"lobject.h", null}, + {"lstate.h", null}, + {"lfunc.h", null}, + {"lapi.h", null}, + {"lstring.h", null}, + {"ltable.h", null}, + {"lauxlib.h", null}, + }; + + string rootPath = Directory.GetParent(Application.dataPath).ToString(); + string[] paths = Directory.GetFiles(rootPath, "*.h", SearchOption.AllDirectories); + foreach (var path in paths) + { + string filename = Path.GetFileName(path); + if (luaPaths.ContainsKey(Path.GetFileName(path))) + { + luaPaths[filename] = path; + } + } + + foreach (var expectFile in luaPaths) + { + if (expectFile.Value == null) + { + return false; + } + } + + return true; + } + + private static string GetLuaAdaptorPath(string filename) + { + string DS = WXAssetsTextTools.DS; + if (UnityUtil.GetSDKMode() == UnityUtil.SDKMode.Package) + { + return $"Packages{DS}com.qq.weixin.minigame{DS}Runtime{DS}Plugins{DS}LuaAdaptor{DS}{filename}"; + } + + return $"Assets{DS}WX-WASM-SDK-V2{DS}Runtime{DS}Plugins{DS}LuaAdaptor{DS}{filename}"; + } + + private static void MakeLuaImport(Dictionary luaPaths) + { + string luaAdaptorImportHeaderPath = GetLuaAdaptorPath("lua_adaptor_import.h"); + if (!File.Exists(luaAdaptorImportHeaderPath)) + { + Debug.LogError("Lua Adaptor File Not Found: " + luaAdaptorImportHeaderPath); + return; + } + + string includeLuaContent = "//EMSCRIPTEN_ENV_LUA_IMPORT_LOGIC_START"; + foreach (var luaPath in luaPaths) + { + includeLuaContent += $"\n#include \"{luaPath.Value.Replace("\\", "\\\\")}\""; + } + includeLuaContent += "\n//EMSCRIPTEN_ENV_LUA_IMPORT_LOGIC_END"; + + string importHeaderContent = File.ReadAllText(luaAdaptorImportHeaderPath); + importHeaderContent = Regex.Replace( + importHeaderContent, + "//EMSCRIPTEN_ENV_LUA_IMPORT_LOGIC_START([\\s\\S]*?)//EMSCRIPTEN_ENV_LUA_IMPORT_LOGIC_END", + includeLuaContent + ); + + File.WriteAllText(luaAdaptorImportHeaderPath, importHeaderContent); + } + + private static void ManageLuaAdaptorBuildOptions(bool shouldBuild) { + string[] maybeBuildFiles = new string[] + { + "lua_adaptor_501.c", + "lua_adaptor_503.c", + "lua_adaptor_comm.c", + "lua_adaptor_import.h", + }; + + foreach (var maybeBuildFile in maybeBuildFiles) + { + string path = GetLuaAdaptorPath(maybeBuildFile); + if (!File.Exists(path) && shouldBuild) + { + Debug.LogError("Lua Adaptor File Not Found: " + maybeBuildFile); + continue; + } + + var wxPerfJSBridgeImporter = AssetImporter.GetAtPath(path) as PluginImporter; + if (wxPerfJSBridgeImporter == null) + { + Debug.LogError("Lua Adaptor Importer Not Found: " + maybeBuildFile); + continue; + } +#if PLATFORM_WEIXINMINIGAME + wxPerfJSBridgeImporter.SetCompatibleWithPlatform(BuildTarget.WeixinMiniGame, shouldBuild); +#else + wxPerfJSBridgeImporter.SetCompatibleWithPlatform(BuildTarget.WebGL, shouldBuild); +#endif + SetPluginCompatibilityByModifyingMetadataFile(path, shouldBuild); + } + } + + private static void MakeEnvForLuaAdaptor() + { + bool hasLuaEnv = GetRequiredLuaHeaderFiles(out var luaPaths); + if (hasLuaEnv) + { + MakeLuaImport(luaPaths); + } + + ManageLuaAdaptorBuildOptions(hasLuaEnv && config.CompileOptions.enablePerfAnalysis); + } + private static bool IsCompatibleWithUnity202203OrNewer() { #if UNITY_2022_3_OR_NEWER @@ -340,11 +462,11 @@ namespace WeChatWASM #endif } - static bool IsCompatibleWithUnity202103To202203() + static bool IsCompatibleWithUnity202102To202203() { #if UNITY_2022_3_OR_NEWER return false; -#elif !UNITY_2021_3_OR_NEWER +#elif !UNITY_2021_2_OR_NEWER return false; #else return true; @@ -642,7 +764,7 @@ namespace WeChatWASM var header = "var OriginalAudioContext = window.AudioContext || window.webkitAudioContext;window.AudioContext = function() {if (this instanceof window.AudioContext) {return wx.createWebAudioContext();} else {return new OriginalAudioContext();}};"; - if (config.CompileOptions.DevelopBuild) + if (config.CompileOptions.DevelopBuild && config.CompileOptions.enablePerfAnalysis) { header = header + RenderAnalysisRules.header; for (i = 0; i < RenderAnalysisRules.rules.Length; i++) @@ -680,17 +802,18 @@ namespace WeChatWASM if (WXExtEnvDef.GETDEF("UNITY_2021_2_OR_NEWER")) { // PlayerSettings.WeixinMiniGame.emscriptenArgs += " -s EXPORTED_FUNCTIONS=_main,_sbrk,_emscripten_stack_get_base,_emscripten_stack_get_end"; - PlayerSettings.WeixinMiniGame.emscriptenArgs += " -s EXPORTED_FUNCTIONS=_sbrk,_emscripten_stack_get_base,_emscripten_stack_get_end -s ERROR_ON_UNDEFINED_SYMBOLS=0"; + PlayerSettings.WeixinMiniGame.emscriptenArgs += " -s EXPORTED_FUNCTIONS=_main,_sbrk,_emscripten_stack_get_base,_emscripten_stack_get_end -s ERROR_ON_UNDEFINED_SYMBOLS=0"; } #else PlayerSettings.WebGL.emscriptenArgs = string.Empty; if (WXExtEnvDef.GETDEF("UNITY_2021_2_OR_NEWER")) { - PlayerSettings.WebGL.emscriptenArgs += " -s EXPORTED_FUNCTIONS=_sbrk,_emscripten_stack_get_base,_emscripten_stack_get_end -s ERROR_ON_UNDEFINED_SYMBOLS=0"; -#if UNITY_2021_2_5 - PlayerSettings.WebGL.emscriptenArgs += ",_main"; + PlayerSettings.WebGL.emscriptenArgs += " -s EXPORTED_FUNCTIONS=_sbrk,_emscripten_stack_get_base,_emscripten_stack_get_end"; +#if UNITY_2021_2_5 || UNITY_6000_0_OR_NEWER + PlayerSettings.WebGL.emscriptenArgs += ",_main"; #endif + PlayerSettings.WebGL.emscriptenArgs += " -s ERROR_ON_UNDEFINED_SYMBOLS=0"; } #endif PlayerSettings.runInBackground = false; @@ -752,6 +875,14 @@ namespace WeChatWASM PlayerSettings.WebGL.emscriptenArgs += " --profiling-funcs "; } +#if UNITY_6000_0_OR_NEWER + if (config.CompileOptions.enableWasm2023) { + PlayerSettings.WebGL.wasm2023 = true; + } else { + PlayerSettings.WebGL.wasm2023 = false; + } +#endif + #if UNITY_2021_2_OR_NEWER #if UNITY_2022_1_OR_NEWER // 默认更改为OptimizeSize,减少代码包体积 diff --git a/Editor/WXEditorSettingHelper.cs b/Editor/WXEditorSettingHelper.cs index dde0d0b32..480bd0825 100644 --- a/Editor/WXEditorSettingHelper.cs +++ b/Editor/WXEditorSettingHelper.cs @@ -202,6 +202,10 @@ namespace WeChatWASM this.formCheckbox("enableProfileStats", "显示性能面板"); this.formCheckbox("enableRenderAnalysis", "显示渲染日志(dev only)"); this.formCheckbox("brotliMT", "brotli多线程压缩(?)", "开启多线程压缩可以提高出包速度,但会降低压缩率。如若不使用wasm代码分包请勿用多线程出包上线"); +#if UNITY_6000_0_OR_NEWER + this.formCheckbox("enableWasm2023", "WebAssembly 2023(?)", "WebAssembly 2023包括对WebAssembly.Table和BigInt的支持。(Android (Android 10 or later recommended), iOS (iOS 15 or later recommended))"); +#endif + if (m_EnablePerfTool) { this.formCheckbox("enablePerfAnalysis", "集成性能分析工具", "将性能分析工具集成入Development Build包中", false, null, OnPerfAnalysisFeatureToggleChanged); @@ -470,6 +474,7 @@ namespace WeChatWASM this.setData("enableProfileStats", config.CompileOptions.enableProfileStats); this.setData("enableRenderAnalysis", config.CompileOptions.enableRenderAnalysis); this.setData("brotliMT", config.CompileOptions.brotliMT); + this.setData("enableWasm2023", config.CompileOptions.enableWasm2023); this.setData("enablePerfAnalysis", config.CompileOptions.enablePerfAnalysis); this.setData("autoUploadFirstBundle", true); @@ -542,6 +547,9 @@ namespace WeChatWASM config.CompileOptions.enableProfileStats = this.getDataCheckbox("enableProfileStats"); config.CompileOptions.enableRenderAnalysis = this.getDataCheckbox("enableRenderAnalysis"); config.CompileOptions.brotliMT = this.getDataCheckbox("brotliMT"); +#if UNITY_6000_0_OR_NEWER + config.CompileOptions.enableWasm2023 = this.getDataCheckbox("enableWasm2023"); +#endif config.CompileOptions.enablePerfAnalysis = this.getDataCheckbox("enablePerfAnalysis"); // font options @@ -720,7 +728,20 @@ namespace WeChatWASM { const string MACRO_ENABLE_WX_PERF_FEATURE = "ENABLE_WX_PERF_FEATURE"; string defineSymbols = PlayerSettings.GetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup); - if (this.getDataCheckbox("enablePerfAnalysis") && this.getDataCheckbox("developBuild")) + + bool shouldAddSymbol = this.getDataCheckbox("enablePerfAnalysis") && this.getDataCheckbox("developBuild"); + +#if !UNITY_2021_2_OR_NEWER || UNITY_2023_2_OR_NEWER + if(shouldAddSymbol) + { + shouldAddSymbol = false; + EditorUtility.DisplayDialog("警告", $"当前Unity版本({Application.unityVersion})不在性能分析工具适配范围内(2021.2-2023.1), 性能分析工具将被禁用。", "确定"); + config.CompileOptions.enablePerfAnalysis = false; + this.setData("enablePerfAnalysis", false); + } +#endif + + if (shouldAddSymbol) { if (defineSymbols.IndexOf(MACRO_ENABLE_WX_PERF_FEATURE) == -1) { diff --git a/Editor/WXExtDef.cs b/Editor/WXExtDef.cs index 9c6516520..3763d7e74 100644 --- a/Editor/WXExtDef.cs +++ b/Editor/WXExtDef.cs @@ -72,6 +72,11 @@ namespace WeChatWASM #else WXExtEnvDef.SETDEF("UNITY_2022", false); #endif +#if UNITY_6000 + WXExtEnvDef.SETDEF("UNITY_6000", true); +#else + WXExtEnvDef.SETDEF("UNITY_6000", false); +#endif #if UNITY_2022_2_OR_NEWER WXExtEnvDef.SETDEF("UNITY_2022_2_OR_NEWER", true); #else @@ -92,6 +97,11 @@ namespace WeChatWASM #else WXExtEnvDef.SETDEF("TUANJIE_2022_3_OR_NEWER", false); #endif +#if UNITY_6000_0_OR_NEWER + WXExtEnvDef.SETDEF("UNITY_6000_0_OR_NEWER", true); +#else + WXExtEnvDef.SETDEF("UNITY_6000_0_OR_NEWER", false); +#endif #if PLATFORM_WEIXINMINIGAME WXExtEnvDef.SETDEF("PLATFORM_WEIXINMINIGAME", true); #else diff --git a/Editor/WXPluginVersion.cs b/Editor/WXPluginVersion.cs index b9af281a3..6b9d885cb 100644 --- a/Editor/WXPluginVersion.cs +++ b/Editor/WXPluginVersion.cs @@ -2,7 +2,7 @@ namespace WeChatWASM { public class WXPluginVersion { - public static string pluginVersion = "202412230248"; // 这一行不要改他,导出的时候会自动替换 + public static string pluginVersion = "202501071257"; // 这一行不要改他,导出的时候会自动替换 } public class WXPluginConf diff --git a/Editor/wx-editor.dll b/Editor/wx-editor.dll index f74369e26..dda55f77d 100644 Binary files a/Editor/wx-editor.dll and b/Editor/wx-editor.dll differ diff --git a/Editor/wx-editor.xml b/Editor/wx-editor.xml index 1df2b5611..6dc11b213 100644 --- a/Editor/wx-editor.xml +++ b/Editor/wx-editor.xml @@ -638,6 +638,11 @@ 是否使用brotli多线程压缩 + + + 是否开启 WebAssembly2023特性 + + 基本汉字 [0x4e00, 0x9fff] https://www.unicode.org/charts/PDF/U4E00.pdf diff --git a/Editor/wx-editor.xml.meta b/Editor/wx-editor.xml.meta index 2d8c6612e..a001dbbfe 100644 --- a/Editor/wx-editor.xml.meta +++ b/Editor/wx-editor.xml.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: ba615cd5260ee5164977f0370e5a48ce +guid: b2b552cdfb3043dcf333ddd380f1b5be DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/DisableKeyboardInput.cs.meta b/Runtime/DisableKeyboardInput.cs.meta index 5ad5594b9..09b1fb607 100644 --- a/Runtime/DisableKeyboardInput.cs.meta +++ b/Runtime/DisableKeyboardInput.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 369971e5d9cddbe4b807891309e177b3 +guid: 8c4a9d1a32668797e0daa1772da0277b DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/Plugins/LuaAdaptor/lua_adaptor_501.c b/Runtime/Plugins/LuaAdaptor/lua_adaptor_501.c new file mode 100644 index 000000000..8a23ea4a7 --- /dev/null +++ b/Runtime/Plugins/LuaAdaptor/lua_adaptor_501.c @@ -0,0 +1,141 @@ +#include "lua_adaptor_import.h" + +#if LUA_VERSION_NUM == 501 +static TValue* lua_index2addr(lua_State* L, int idx) +{ + CallInfo* ci = L->ci; + if (idx > 0) + { + TValue* o = ci->func + idx; + // api_check(L, idx <= ci->top - (ci->func + 1), "unacceptable index"); + if (o >= L->top) return NONVALIDVALUE; + else return o; + } + else if (!ispseudo(idx)) + { + /* negative index */ + // api_check(L, idx != 0 && -idx <= L->top - (ci->func + 1), "invalid index"); + return L->top + idx; + } + else if (idx == LUA_REGISTRYINDEX) + return &G(L)->l_registry; + else + { + /* upvalues */ + idx = LUA_REGISTRYINDEX - idx; + // api_check(L, idx <= MAXUPVAL + 1, "upvalue index too large"); + if (iscfunction(ci->func)) + return NONVALIDVALUE; + else + { + CClosure* func = &ci->func->value.gc->cl.c; + return (idx <= func->nupvalues) ? &func->upvalue[idx - 1] : NONVALIDVALUE; + } + } +} + + +size_t lua_sizeof(lua_State* L, int idx){ + const char* tn = lua_typename(L, lua_type(L, -1)); + TValue* o = lua_index2addr(L, idx); + if (!o) + return 0; + + switch (ttype(o)) + { + + case LUA_TTABLE: + { + luaL_checkstack(L, LUA_MINSTACK, NULL); + Table* h = hvalue(o); + if (h == NULL) { + return 0; + } + return (sizeof(Table) + sizeof(TValue) * h->sizearray + + sizeof(Node) * (sizenode(h))); + } + case LUA_TFUNCTION: + { + if (iscfunction(o)) { + return sizeCclosure(o->value.gc->cl.c.nupvalues); + } else { + return sizeLclosure(o->value.gc->cl.l.nupvalues); + } + } + case LUA_TTHREAD: + { + lua_State* th = thvalue(o); + + return (sizeof(lua_State) + sizeof(TValue) * th->stacksize + + sizeof(CallInfo) * th->size_ci); + } + case LUA_TPROTO: + { + Proto* p = (Proto*)pvalue(o); + return (sizeof(Proto) + + sizeof(Instruction) * p->sizecode + + sizeof(Proto*) * p->sizep + + sizeof(TValue) * p->sizek + + sizeof(int) * p->sizelineinfo + + sizeof(LocVar) * p->sizelocvars + + sizeof(TString*) * p->sizeupvalues); + } + + case LUA_TUSERDATA: + { + return sizeudata(uvalue(o)); + } + case LUA_TSTRING: + { + TString* ts = &o->value.gc->ts; + return sizeof(TString) + sizeof(char) * ts->tsv.len + 1; + } + case LUA_TNUMBER: + { + return sizeof(lua_Number); + } + case LUA_TBOOLEAN: + { + return sizeof(int); + } + case LUA_TLIGHTUSERDATA: + { + return sizeof(void*); + } + default: return (size_t)(0); + } +} + + +uintptr_t lua_getaddr(lua_State* L, int idx) { + TValue* o = lua_index2addr(L, idx); + if (!o) + return (uintptr_t)(lua_topointer(L, -1)); + + switch (ttype(o)) + { + case LUA_TPROTO: + { + return (uintptr_t)(pvalue(o)); + } + case LUA_TSTRING: + { + return (uintptr_t)(getstr(o)); + } + case LUA_TTABLE: + case LUA_TFUNCTION: + case LUA_TTHREAD: + case LUA_TUSERDATA: + case LUA_TLIGHTUSERDATA: + default: { + return (uintptr_t)(lua_topointer(L, -1)); + } + } +} + + +int (lua_getuservalue) (lua_State *L, int idx) { + lua_pushnil(L); +} + +#endif \ No newline at end of file diff --git a/Runtime/Plugins/LuaAdaptor/lua_adaptor_501.c.meta b/Runtime/Plugins/LuaAdaptor/lua_adaptor_501.c.meta new file mode 100644 index 000000000..7507a643f --- /dev/null +++ b/Runtime/Plugins/LuaAdaptor/lua_adaptor_501.c.meta @@ -0,0 +1,74 @@ +fileFormatVersion: 2 +guid: 596142b9479e1ab4caaf44c77d5a7d8f +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 1 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + : Any + second: + enabled: 0 + settings: + Exclude Editor: 1 + Exclude Linux64: 1 + Exclude OSXUniversal: 1 + Exclude WebGL: 1 + Exclude Win: 1 + Exclude Win64: 1 + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + - first: + Standalone: Linux64 + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: OSXUniversal + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win64 + second: + enabled: 0 + settings: + CPU: None + - first: + WebGL: WebGL + second: + enabled: 0 + settings: {} + - first: + WeixinMiniGame: WeixinMiniGame + second: + enabled: 0 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Plugins/LuaAdaptor/lua_adaptor_503.c b/Runtime/Plugins/LuaAdaptor/lua_adaptor_503.c new file mode 100644 index 000000000..6e6d1d477 --- /dev/null +++ b/Runtime/Plugins/LuaAdaptor/lua_adaptor_503.c @@ -0,0 +1,161 @@ +#include "lua_adaptor_import.h" + +#if LUA_VERSION_NUM == 503 + +#define GETTVALUE(v) v +#define tvtype(o) ttnov(o) +#define LUA_PROTO LUA_TPROTO +#define LUA_UPVAL LUA_TUPVAL +#define LUA_TABLE LUA_TTABLE +#define LUA_THREAD LUA_TTHREAD +#define LUA_USERDATA LUA_TUSERDATA +#define LUA_LIGHTUSERDATA LUA_TLIGHTUSERDATA +#define LUA_SHRSTR LUA_TSHRSTR +#define LUA_LNGSTR LUA_TLNGSTR +#define LUA_LCL LUA_TLCL +#define LUA_CCL LUA_TCCL +#define LUA_LCF LUA_TLCF +#define LUA_IS_LUA_C_FUNCTION(f) (ttislcf(f)) +#define LUA_C_CLUSTER_VALUE(f) (clCvalue(f)) + +static TValue* lua_index2addr(lua_State* L, int idx) +{ + CallInfo* ci = L->ci; + if (idx > 0) + { + TValue* o = GETTVALUE(ci->func + idx); + api_check(L, idx <= ci->top - (ci->func + 1), "unacceptable index"); + if (o >= GETTVALUE(L->top)) return NONVALIDVALUE; + else return o; + } + else if (!ispseudo(idx)) + { + /* negative index */ + api_check(L, idx != 0 && -idx <= L->top - (ci->func + 1), "invalid index"); + return GETTVALUE(L->top + idx); + } + else if (idx == LUA_REGISTRYINDEX) + return &G(L)->l_registry; + else + { + /* upvalues */ + idx = LUA_REGISTRYINDEX - idx; + api_check(L, idx <= MAXUPVAL + 1, "upvalue index too large"); + if (LUA_IS_LUA_C_FUNCTION(GETTVALUE(ci->func))) + return NONVALIDVALUE; + else + { + CClosure* func = LUA_C_CLUSTER_VALUE(GETTVALUE(ci->func)); + return (idx <= func->nupvalues) ? &func->upvalue[idx - 1] : NONVALIDVALUE; + } + } +} + +uintptr_t lua_getaddr(lua_State* L, int idx) { + TValue* o = lua_index2addr(L, idx); + if (!o) + return (uintptr_t)(lua_topointer(L, -1)); + + switch (tvtype(o)) + { + case LUA_TPROTO: + { + return (uintptr_t)(pvalue(o)); + } + case LUA_SHRSTR: + case LUA_LNGSTR: + { + return (uintptr_t)(tsvalue(o)); + } + case LUA_TTABLE: + case LUA_LCL: + case LUA_CCL: + case LUA_LCF: + case LUA_TTHREAD: + case LUA_TUSERDATA: + case LUA_TLIGHTUSERDATA: + default: { + return (uintptr_t)(lua_topointer(L, -1)); + } + } +} + +size_t lua_sizeof(lua_State* L, int idx){ + const char* tn = lua_typename(L, lua_type(L, -1)); + TValue* o = lua_index2addr(L, idx); + if (!o) + return 0; + + switch (tvtype(o)) + { + + case LUA_TABLE: + { + luaL_checkstack(L, LUA_MINSTACK, NULL); + Table* h = hvalue(o); + if (h == NULL) { + return 0; + } + return (sizeof(Table) + sizeof(TValue) * h->sizearray + + sizeof(Node) * (isdummy(h) ? 0 : sizenode(h))); + } + case LUA_LCL: + { + LClosure* cl = clLvalue(o); + return sizeLclosure(cl->nupvalues); + } + case LUA_CCL: + { + CClosure* cl = clCvalue(o); + return sizeCclosure(cl->nupvalues); + } + case LUA_TTHREAD: + { + lua_State* th = thvalue(o); + + return (sizeof(lua_State) + sizeof(TValue) * th->stacksize + + sizeof(CallInfo) * th->nci); + } + case LUA_PROTO: + { + Proto* p = (Proto*)pvalue(o); + return (sizeof(Proto) + + sizeof(Instruction) * p->sizecode + + sizeof(Proto*) * p->sizep + + sizeof(TValue) * p->sizek + + sizeof(int) * p->sizelineinfo + + sizeof(LocVar) * p->sizelocvars + + sizeof(TString*) * p->sizeupvalues); + } + + case LUA_USERDATA: + { + return sizeudata(uvalue(o)); + } + case LUA_SHRSTR: + { + TString* ts = gco2ts(o); + return sizelstring(ts->shrlen); + } + case LUA_LNGSTR: + { + TString* ts = gco2ts(o); + return sizelstring(ts->u.lnglen); + } + case LUA_TNUMBER: + { + return sizeof(lua_Number); + } + case LUA_TBOOLEAN: + { + return sizeof(int); + } + case LUA_LIGHTUSERDATA: + { + return sizeof(void*); + } + default: return (size_t)(0); + } +} + +#endif \ No newline at end of file diff --git a/Runtime/Plugins/LuaAdaptor/lua_adaptor_503.c.meta b/Runtime/Plugins/LuaAdaptor/lua_adaptor_503.c.meta new file mode 100644 index 000000000..63d671147 --- /dev/null +++ b/Runtime/Plugins/LuaAdaptor/lua_adaptor_503.c.meta @@ -0,0 +1,74 @@ +fileFormatVersion: 2 +guid: 798157947f88e004d938d2092163d6eb +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 1 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + : Any + second: + enabled: 0 + settings: + Exclude Editor: 1 + Exclude Linux64: 1 + Exclude OSXUniversal: 1 + Exclude WebGL: 1 + Exclude Win: 1 + Exclude Win64: 1 + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + - first: + Standalone: Linux64 + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: OSXUniversal + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win64 + second: + enabled: 0 + settings: + CPU: None + - first: + WebGL: WebGL + second: + enabled: 0 + settings: {} + - first: + WeixinMiniGame: WeixinMiniGame + second: + enabled: 0 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Plugins/LuaAdaptor/lua_adaptor_comm.c b/Runtime/Plugins/LuaAdaptor/lua_adaptor_comm.c new file mode 100644 index 000000000..67d27555e --- /dev/null +++ b/Runtime/Plugins/LuaAdaptor/lua_adaptor_comm.c @@ -0,0 +1,20 @@ +#include "lua_adaptor_import.h" + +lua_Debug* lua_newdebugar() { return malloc(sizeof(lua_Debug)); } +void lua_deletedebugar(lua_Debug* ar) { return free(ar); } + +const char* lua_Debug_getname(lua_Debug* ar) { return ar->name; } +char* lua_Debug_getshortsrc(lua_Debug* ar) { return ar->short_src; } +int lua_Debug_getevent(lua_Debug* ar) { return ar->event; } +int lua_Debug_getlinedefined(lua_Debug* ar) { return ar->linedefined; } +int lua_Debug_getlastlinedefined(lua_Debug* ar) { return ar->lastlinedefined; } + +int lua_get_registry_index() { return LUA_REGISTRYINDEX; } +double lua_todouble(lua_State *L, int idx) { return (double)lua_tonumber(L, idx); } + + +lua_State* lua_State_getmainthread(lua_State* L) { return G(L)->mainthread; } + +void (lua_do_sethook) (lua_State *L, lua_Hook func, int mask, int count) { + lua_sethook(L, func, mask, count); +} diff --git a/Runtime/Plugins/LuaAdaptor/lua_adaptor_comm.c.meta b/Runtime/Plugins/LuaAdaptor/lua_adaptor_comm.c.meta new file mode 100644 index 000000000..20c55edeb --- /dev/null +++ b/Runtime/Plugins/LuaAdaptor/lua_adaptor_comm.c.meta @@ -0,0 +1,74 @@ +fileFormatVersion: 2 +guid: 2c61fe7994a261a48a95348a09bd839a +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 1 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + : Any + second: + enabled: 0 + settings: + Exclude Editor: 1 + Exclude Linux64: 1 + Exclude OSXUniversal: 1 + Exclude WebGL: 1 + Exclude Win: 1 + Exclude Win64: 1 + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + - first: + Standalone: Linux64 + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: OSXUniversal + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win64 + second: + enabled: 0 + settings: + CPU: None + - first: + WebGL: WebGL + second: + enabled: 0 + settings: {} + - first: + WeixinMiniGame: WeixinMiniGame + second: + enabled: 0 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Plugins/LuaAdaptor/lua_adaptor_import.h b/Runtime/Plugins/LuaAdaptor/lua_adaptor_import.h new file mode 100644 index 000000000..fb5ee567c --- /dev/null +++ b/Runtime/Plugins/LuaAdaptor/lua_adaptor_import.h @@ -0,0 +1,33 @@ +#pragma once + +#include "stdint.h" +#include + +/* value at a non-valid index */ +#define NONVALIDVALUE NULL//cast(TValue *, luaO_nilobject) + +/* test for pseudo index */ +#define ispseudo(i) ((i) <= LUA_REGISTRYINDEX) + +#if LOCAL_DEBUG_USE_LUA_VERSION == 503 +#include "lua53/lua.h" +#include "lua53/lobject.h" +#include "lua53/lstate.h" +#include "lua53/lfunc.h" +#include "lua53/lapi.h" +#include "lua53/lstring.h" +#include "lua53/ltable.h" +#include "lua53/lauxlib.h" +#elif LOCAL_DEBUG_USE_LUA_VERSION == 501 +#include "lua51/lua.h" +#include "lua51/lobject.h" +#include "lua51/lstate.h" +#include "lua51/lfunc.h" +#include "lua51/lapi.h" +#include "lua51/lstring.h" +#include "lua51/ltable.h" +#include "lua51/lauxlib.h" +#elif __EMSCRIPTEN__ +//EMSCRIPTEN_ENV_LUA_IMPORT_LOGIC_START +//EMSCRIPTEN_ENV_LUA_IMPORT_LOGIC_END +#endif diff --git a/Runtime/Plugins/LuaAdaptor/lua_adaptor_import.h.meta b/Runtime/Plugins/LuaAdaptor/lua_adaptor_import.h.meta new file mode 100644 index 000000000..19c38cbd6 --- /dev/null +++ b/Runtime/Plugins/LuaAdaptor/lua_adaptor_import.h.meta @@ -0,0 +1,74 @@ +fileFormatVersion: 2 +guid: 169ebbbcd2d6ffd4180f421d0ae2bd33 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 1 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + : Any + second: + enabled: 0 + settings: + Exclude Editor: 1 + Exclude Linux64: 1 + Exclude OSXUniversal: 1 + Exclude WebGL: 1 + Exclude Win: 1 + Exclude Win64: 1 + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + - first: + Standalone: Linux64 + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: OSXUniversal + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win64 + second: + enabled: 0 + settings: + CPU: None + - first: + WebGL: WebGL + second: + enabled: 0 + settings: {} + - first: + WeixinMiniGame: WeixinMiniGame + second: + enabled: 0 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Plugins/WxPerfJsBridge.jslib b/Runtime/Plugins/WxPerfJsBridge.jslib index f9dbd70a7..6a09e842e 100644 --- a/Runtime/Plugins/WxPerfJsBridge.jslib +++ b/Runtime/Plugins/WxPerfJsBridge.jslib @@ -81,5 +81,26 @@ mergeInto(LibraryManager.library, { const content = UTF8ToString(dataPtr); GameGlobal.manager.profiler.uploadStringWithDir({'str': content, 'len': bufSize, 'fileName': name, 'uploadDir': dir, 'cb': _JSProfilerUploadStringWithDirCallback}); //} + }, + + JSExportFromIDBFS: function(idbfsPath, targetPath, snapshotFileName, frameIdx) { + const idbfsPathStr = UTF8ToString(idbfsPath); + const targetPathStr = UTF8ToString(targetPath); + const fileName = UTF8ToString(snapshotFileName); + GameGlobal.manager.profiler.uploadSnapshotBuffer({ + 'fileName': fileName, + 'uploadSnapshotPath': targetPathStr, + 'frameIdx': frameIdx, + 'idbfsPathStr': idbfsPathStr, + 'targetPathStr': targetPathStr + }) + }, + + JSGetConvertPluginVersion: function() { + var lengthBytes = lengthBytesUTF8(GameGlobal.unityNamespace.convertPluginVersion) + 1; + var stringOnWasmHeap = _malloc(lengthBytes); + stringToUTF8(GameGlobal.unityNamespace.convertPluginVersion, stringOnWasmHeap, lengthBytes); + + return stringOnWasmHeap; } }); diff --git a/Runtime/Plugins/wx-perf.dll b/Runtime/Plugins/wx-perf.dll index 5d3964578..39bf084a4 100644 Binary files a/Runtime/Plugins/wx-perf.dll and b/Runtime/Plugins/wx-perf.dll differ diff --git a/Runtime/Plugins/wx-perf.dll.meta b/Runtime/Plugins/wx-perf.dll.meta index 7684517d7..99b128da8 100644 --- a/Runtime/Plugins/wx-perf.dll.meta +++ b/Runtime/Plugins/wx-perf.dll.meta @@ -64,6 +64,11 @@ PluginImporter: second: enabled: 1 settings: {} + - first: + WeixinMiniGame: WeixinMiniGame + second: + enabled: 1 + settings: {} - first: Windows Store Apps: WindowsStoreApps second: diff --git a/Runtime/Plugins/wx-perf.xml b/Runtime/Plugins/wx-perf.xml index 8be02f617..e9125a4cc 100644 --- a/Runtime/Plugins/wx-perf.xml +++ b/Runtime/Plugins/wx-perf.xml @@ -14,5 +14,27 @@ If the provided annotation string is null or empty, an error message will be logged. + + + 声明自定义性能指标 + + 性能指标名称 + 性能指标类别 + 性能指标展示方式,0. 不插值. 1. 线性插值;2. Step插值; + + + + 设置自定义性能值,目前只支持浮点数 + + 性能指标名称 + 性能指标数值 + + + + 指定luaState + + luaState + + diff --git a/Runtime/Plugins/wx-runtime-editor.dll b/Runtime/Plugins/wx-runtime-editor.dll index a6311c462..02ab81b46 100644 Binary files a/Runtime/Plugins/wx-runtime-editor.dll and b/Runtime/Plugins/wx-runtime-editor.dll differ diff --git a/Runtime/Plugins/wx-runtime-editor.xml b/Runtime/Plugins/wx-runtime-editor.xml index d127bf328..37d9fdc87 100644 --- a/Runtime/Plugins/wx-runtime-editor.xml +++ b/Runtime/Plugins/wx-runtime-editor.xml @@ -3124,6 +3124,26 @@ 接口调用成功的回调函数 + + + 预告 id,通过 getChannelsLiveNoticeInfo 接口获取 + + + + + 接口调用结束的回调函数(调用成功、失败都会执行) + + + + + 接口调用失败的回调函数 + + + + + 接口调用成功的回调函数 + + 小程序账号信息 @@ -8591,11 +8611,6 @@ 接口调用成功的回调函数 - - - 预告 id,通过 getChannelsLiveNoticeInfo 接口获取 - - 接口调用结束的回调函数(调用成功、失败都会执行) diff --git a/Runtime/Plugins/wx-runtime-editor.xml.meta b/Runtime/Plugins/wx-runtime-editor.xml.meta index 39983e20a..85c85f139 100644 --- a/Runtime/Plugins/wx-runtime-editor.xml.meta +++ b/Runtime/Plugins/wx-runtime-editor.xml.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 42748afd17a25bd01293d72e12c6e260 +guid: d697012f4cebfabc8cfa75c1c22623bb DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/Plugins/wx-runtime.dll b/Runtime/Plugins/wx-runtime.dll index 1e9ed0f5c..ec9704d39 100644 Binary files a/Runtime/Plugins/wx-runtime.dll and b/Runtime/Plugins/wx-runtime.dll differ diff --git a/Runtime/Plugins/wx-runtime.xml b/Runtime/Plugins/wx-runtime.xml index 862462222..63c0b1c5b 100644 --- a/Runtime/Plugins/wx-runtime.xml +++ b/Runtime/Plugins/wx-runtime.xml @@ -3130,6 +3130,26 @@ 接口调用成功的回调函数 + + + 预告 id,通过 getChannelsLiveNoticeInfo 接口获取 + + + + + 接口调用结束的回调函数(调用成功、失败都会执行) + + + + + 接口调用失败的回调函数 + + + + + 接口调用成功的回调函数 + + 小程序账号信息 @@ -8597,11 +8617,6 @@ 接口调用成功的回调函数 - - - 预告 id,通过 getChannelsLiveNoticeInfo 接口获取 - - 接口调用结束的回调函数(调用成功、失败都会执行) diff --git a/Runtime/Plugins/wx-runtime.xml.meta b/Runtime/Plugins/wx-runtime.xml.meta index a4cb7d062..7eab64011 100644 --- a/Runtime/Plugins/wx-runtime.xml.meta +++ b/Runtime/Plugins/wx-runtime.xml.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: a522849090d5944d8beec2e651edb09e +guid: 98dd7ffd6b23011780e5c299151ca915 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/Plugins/wx_perf_2021.a b/Runtime/Plugins/wx_perf_2021.a index 4071db347..2e7e47f81 100644 Binary files a/Runtime/Plugins/wx_perf_2021.a and b/Runtime/Plugins/wx_perf_2021.a differ diff --git a/Runtime/Plugins/wx_perf_2021.a.meta b/Runtime/Plugins/wx_perf_2021.a.meta index 201212399..0f3002eb0 100644 --- a/Runtime/Plugins/wx_perf_2021.a.meta +++ b/Runtime/Plugins/wx_perf_2021.a.meta @@ -16,12 +16,21 @@ PluginImporter: second: enabled: 0 settings: + Exclude Android: 1 Exclude Editor: 1 Exclude Linux64: 1 Exclude OSXUniversal: 1 Exclude WebGL: 1 Exclude Win: 1 Exclude Win64: 1 + Exclude WindowsStoreApps: 1 + - first: + Android: Android + second: + enabled: 0 + settings: + AndroidSharedLibraryType: Executable + CPU: ARMv7 - first: Any: second: @@ -69,6 +78,16 @@ PluginImporter: second: enabled: 0 settings: {} + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + DontProcess: false + PlaceholderPath: + SDK: AnySDK + ScriptingBackend: AnyScriptingBackend userData: assetBundleName: assetBundleVariant: diff --git a/Runtime/Plugins/wx_perf_2022.a b/Runtime/Plugins/wx_perf_2022.a index 71296d3fd..c36d3daf1 100644 Binary files a/Runtime/Plugins/wx_perf_2022.a and b/Runtime/Plugins/wx_perf_2022.a differ diff --git a/Runtime/WX.cs b/Runtime/WX.cs index cb2c765db..50a42d171 100644 --- a/Runtime/WX.cs +++ b/Runtime/WX.cs @@ -2639,16 +2639,6 @@ namespace WeChatWASM WXSDKManagerHandler.Instance.RequestPointerLock(); } - /// - /// [wx.reserveChannelsLive(Object object)](https://developers.weixin.qq.com/minigame/dev/api/open-api/channels/wx.reserveChannelsLive.html) - /// 需要基础库: `2.19.0` - /// 预约视频号直播 - /// - public static void ReserveChannelsLive(ReserveChannelsLiveOption option) - { - WXSDKManagerHandler.Instance.ReserveChannelsLive(option); - } - /// /// [wx.revokeBufferURL(string url)](https://developers.weixin.qq.com/minigame/dev/api/storage/wx.revokeBufferURL.html) /// 需要基础库: `2.14.0` @@ -3283,6 +3273,10 @@ namespace WeChatWASM WXSDKManagerHandler.Instance.OnShareMessageToFriend(result); } + public static void OffShareMessageToFriend(Action result) + { + WXSDKManagerHandler.Instance.OffShareMessageToFriend(result); + } /// /// [wx.onShow(function listener)](https://developers.weixin.qq.com/minigame/dev/api/base/app/life-cycle/wx.onShow.html) diff --git a/Runtime/WXBase.cs b/Runtime/WXBase.cs index 876a49bde..eaefbe801 100644 --- a/Runtime/WXBase.cs +++ b/Runtime/WXBase.cs @@ -1106,6 +1106,17 @@ namespace WeChatWASM { return WXSDKManagerHandler.CallJSFunctionWithReturn(sdkName, functionName, args); } + + // TODO: 声明错误临时处理 + /// + /// [wx.reserveChannelsLive(Object object)](https://developers.weixin.qq.com/minigame/dev/api/open-api/channels/wx.reserveChannelsLive.html) + /// 需要基础库: `2.19.0` + /// 预约视频号直播 + /// + public static void ReserveChannelsLive(ReserveChannelsLiveOption option) + { + WXSDKManagerHandler.Instance.ReserveChannelsLive(option); + } } } #endif diff --git a/Runtime/WXProfileStatsScript.cs b/Runtime/WXProfileStatsScript.cs index bffc919fa..a2fda5f22 100644 --- a/Runtime/WXProfileStatsScript.cs +++ b/Runtime/WXProfileStatsScript.cs @@ -264,9 +264,9 @@ public class WXProfileStatsScript : MonoBehaviour, WeChatWASM.WXSDKManagerHandle m_fpsCount++; m_fpsDeltaTime += Time.deltaTime; - if (m_fpsCount % 60 == 0) + if (m_fpsCount % 60 == 0 && m_fpsDeltaTime != 0.0f) { - m_fpsCount = 1; + m_fpsCount = 0; fps = (int)Mathf.Ceil(60.0f / m_fpsDeltaTime); m_fpsDeltaTime = 0; } diff --git a/Runtime/WXRuntimeExtDef.cs b/Runtime/WXRuntimeExtDef.cs index 6fd6dbec2..1d3f9ffe3 100644 --- a/Runtime/WXRuntimeExtDef.cs +++ b/Runtime/WXRuntimeExtDef.cs @@ -69,6 +69,11 @@ namespace WeChatWASM #else WXRuntimeExtEnvDef.SETDEF("UNITY_2022", false); #endif +#if UNITY_6000 + WXRuntimeExtEnvDef.SETDEF("UNITY_6000", true); +#else + WXRuntimeExtEnvDef.SETDEF("UNITY_6000", false); +#endif #if UNITY_2022_2_OR_NEWER WXRuntimeExtEnvDef.SETDEF("UNITY_2022_2_OR_NEWER", true); #else @@ -89,6 +94,11 @@ namespace WeChatWASM #else WXRuntimeExtEnvDef.SETDEF("TUANJIE_2022_3_OR_NEWER", false); #endif +#if UNITY_6000_0_OR_NEWER + WXRuntimeExtEnvDef.SETDEF("UNITY_6000_0_OR_NEWER", true); +#else + WXRuntimeExtEnvDef.SETDEF("UNITY_6000_0_OR_NEWER", false); +#endif #if PLATFORM_WEIXINMINIGAME WXRuntimeExtEnvDef.SETDEF("PLATFORM_WEIXINMINIGAME", true); diff --git a/Runtime/WXSDKPerf/WXPerfEngine.cs b/Runtime/WXSDKPerf/WXPerfEngine.cs index 8e67e11c3..00552b351 100644 --- a/Runtime/WXSDKPerf/WXPerfEngine.cs +++ b/Runtime/WXSDKPerf/WXPerfEngine.cs @@ -6,6 +6,8 @@ using System.Runtime.InteropServices; using System.Xml; using UnityEngine; using UnityEngine.Scripting; +using System.IO; + #if PLATFORM_WEIXINMINIGAME || PLATFORM_WEBGL || UNITY_EDITOR @@ -17,8 +19,10 @@ namespace WXSDKPerf [ComVisible(false)] public class WXPerfEngine { +#if !UNITY_EDITOR static WXPerfEngine_Implementation m_PerfEngineImplementation = null; - +#endif + [RuntimeInitializeOnLoadMethod] public static void StartWXPerfEngine() { @@ -30,7 +34,14 @@ namespace WXSDKPerf #endif } - + /// + /// This method is used to add an annotation to the performance data. + /// The annotation string is uploaded to the server along with the current frame ID. + /// + /// The annotation string to be added. It should not be null or empty. + /// + /// If the provided annotation string is null or empty, an error message will be logged. + /// public static void Annotation(string InAnnotationString) { #if UNITY_EDITOR @@ -42,11 +53,177 @@ namespace WXSDKPerf return; } + if (InAnnotationString.Contains("CaptureUnityMemorySnapshot")) + { + TakeAndUploadUnityMemorySnapshot(); + } + m_PerfEngineImplementation.Annotation(InAnnotationString); #endif } - } + + /// + /// 检查是否正在录制性能数据 + /// + /// 如果正在录制返回true,否则返回false + public static bool IsRecording() + { +#if UNITY_EDITOR + return false; +#else + return m_PerfEngineImplementation != null && m_PerfEngineImplementation.IsRecording(); +#endif + } + + private static void TakeAndUploadUnityMemorySnapshot() + { +#if UNITY_EDITOR + return; +#else + DateTime timestamp = DateTime.Now; + var dateString = timestamp.ToLocalTime().ToString("yyyy-MM-dd_HH-mm-ss", System.Globalization.CultureInfo.InvariantCulture); + var snapshotFileName = $"{dateString}.snap"; + +#if UNITY_2018_3_OR_NEWER && !UNITY_2022_2_OR_NEWER + UnityEngine.Profiling.Memory.Experimental.MemoryProfiler.TakeSnapshot(Path.Combine(Application.persistentDataPath, snapshotFileName), + WXPerfEngine_Implementation.CaptureSnapshotCallback, (UnityEngine.Profiling.Memory.Experimental.CaptureFlags)31); + +#elif UNITY_2022_2_OR_NEWER + Unity.Profiling.Memory.MemoryProfiler.TakeSnapshot(Path.Combine(Application.persistentDataPath, snapshotFileName), + WXPerfEngine_Implementation.CaptureSnapshotCallback, (Unity.Profiling.Memory.CaptureFlags)31); +#endif +#endif + } + + /// + /// 指定luaState + /// + /// luaState + public static void SetLuaState(IntPtr L) + { +#if UNITY_EDITOR + return; +#else + if (m_PerfEngineImplementation == null) + { + UnityEngine.Debug.LogError("SetLuaState: WXPerfEngine Not Started yet! Please Call WXSDKPerf.StartWXPerfEngine first! "); + return; + } + + m_PerfEngineImplementation.SetLuaState(L); +#endif + } + + /// + /// 声明自定义性能指标 + /// + /// 性能指标名称 + /// 性能指标类别 + /// 性能指标展示方式,0. 不插值. 1. 线性插值;2. Step插值; + public static void DeclareCustomStatInfo(string inStatName, string inStatCategory, int inStatInterpType = 1) + { +#if UNITY_EDITOR + return; +#else + if (m_PerfEngineImplementation == null) + { + UnityEngine.Debug.LogError("DeclareCustomStatInfo: Invalid m_PerfEngineImplementation! "); + return; + } + + m_PerfEngineImplementation.DeclareCustomStatInfo(inStatName, inStatCategory, inStatInterpType); +#endif + } + + /// + /// 设置自定义性能指标,目前只支持浮点数 + /// 若该指标未通过DeclareCustomStatInfo进行类别的声明,则将被归为默认自定义类别,以及使用默认线性插值 + /// + /// 性能指标名称 + /// 性能指标数值 + public static void SetCustomStatValue(string inStatName, float inValue) + { +#if UNITY_EDITOR + return; +#else + if (m_PerfEngineImplementation == null) + { + UnityEngine.Debug.LogError("SetCustomStatInfo: Invalid m_PerfEngineImplementation! "); + return; + } + + m_PerfEngineImplementation.SetCustomStatInfo(inStatName, inValue); +#endif + } + + /// 在自定义性能指标值的基础上增加一段数值。 + /// 如果未进行指标声明,将自动声明该指标,该指标将出现在报告的“Project Default Stat Category”中 + /// + /// 性能指标名称 + /// 性能指标数值 + public static void AddCustomStatInfoBy(string inStatName, float inValue) + { +#if UNITY_EDITOR + return; +#else + if (m_PerfEngineImplementation == null) + { + UnityEngine.Debug.LogError("AddCustomStatInfoBy: Invalid m_PerfEngineImplementation! "); + return; + } + + m_PerfEngineImplementation.AddCustomStatInfoBy(inStatName, inValue); +#endif + + } + + + /// + /// 手动开始记录 + /// + /// 是否启用堆栈跟踪 + /// 是否启用统计信息 + /// 是否频繁截图 + /// 是否记录渲染指令 + /// 是否启用资源捕获 + /// 是否启用Lua内存监控 + /// 是否启用Lua函数内存跟踪 + public static void StartRecordManually(bool inEnableStackTrace, bool inEnableStatInfo, bool inFrequentScreenShot, bool inEnablebRenderInst, + bool inEnableCaptureResource, bool inEnableLuaMemoryMonitor, bool inEnableLuaFunctionMemoryTracking) + { +#if UNITY_EDITOR + return; +#else + if (m_PerfEngineImplementation == null) + { + UnityEngine.Debug.LogError("StartRecordManually: Invalid m_PerfEngineImplementation! "); + return; + } + + m_PerfEngineImplementation.StartRecordManually(inEnableStackTrace, inEnableStatInfo, inFrequentScreenShot, inEnablebRenderInst, + inEnableCaptureResource, inEnableLuaMemoryMonitor, inEnableLuaFunctionMemoryTracking); +#endif + } + + /// + /// 手动停止记录 + /// + public static void StopRecordManually() + { +#if UNITY_EDITOR + return; +#else + if (m_PerfEngineImplementation == null) + { + UnityEngine.Debug.LogError("StartRecordManually: Invalid m_PerfEngineImplementation! "); + return; + } + + m_PerfEngineImplementation.StopRecordManually(); +#endif + } + } } #endif diff --git a/Runtime/WXTouchInputOverride.cs b/Runtime/WXTouchInputOverride.cs index f5b6bfc27..25f4ac40d 100644 --- a/Runtime/WXTouchInputOverride.cs +++ b/Runtime/WXTouchInputOverride.cs @@ -38,15 +38,13 @@ public class WXTouchInputOverride : BaseInput { base.OnEnable(); #if UNITY_WEBGL && !UNITY_EDITOR - if (string.IsNullOrEmpty(WeChatWASM.WX.GetDeviceInfo().platform)) return; -#else - return; -#endif + if (string.IsNullOrEmpty(WeChatWASM.WX.GetSystemInfoSync().platform)) return; InitWechatTouchEvents(); if (_standaloneInputModule) { _standaloneInputModule.inputOverride = this; } +#endif } protected override void OnDisable() diff --git a/Runtime/wechat-default/check-version.js.meta b/Runtime/wechat-default/check-version.js.meta index 11ebc6e5f..82fbcb471 100644 --- a/Runtime/wechat-default/check-version.js.meta +++ b/Runtime/wechat-default/check-version.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: be0270bfd43f029ae106de33854e607f +guid: f1f7222e307eb06475bfabdbf621af11 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/data-package/game.js.meta b/Runtime/wechat-default/data-package/game.js.meta index 37b5f912b..ffc904e65 100644 --- a/Runtime/wechat-default/data-package/game.js.meta +++ b/Runtime/wechat-default/data-package/game.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 6d9a69df26b7bc6611510bea5fb68735 +guid: 9c2835eb454d7332ba06acbdb09e7e4f DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/events.js.meta b/Runtime/wechat-default/events.js.meta index 50bc9849b..28d49190c 100644 --- a/Runtime/wechat-default/events.js.meta +++ b/Runtime/wechat-default/events.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: ad7c292e283869aad57b11778a395cf9 +guid: c12ec2802efc59b39386ed1c46cf99d7 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/game.js.meta b/Runtime/wechat-default/game.js.meta index 92b9d5696..c8036ee73 100644 --- a/Runtime/wechat-default/game.js.meta +++ b/Runtime/wechat-default/game.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: d0a189da6dad059eb5bdff046c501973 +guid: c07055c388c882d43ae8cfed7e74c32f DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/game.json b/Runtime/wechat-default/game.json index 2ab15876f..2fd4a2b59 100644 --- a/Runtime/wechat-default/game.json +++ b/Runtime/wechat-default/game.json @@ -23,7 +23,7 @@ ], "plugins": { "UnityPlugin": { - "version": "1.2.62", + "version": "1.2.65", "provider": "wxe5a48f1ed5f544b7", "contexts": [ { diff --git a/Runtime/wechat-default/game.json.meta b/Runtime/wechat-default/game.json.meta index 924def2cc..c4a41cd8f 100644 --- a/Runtime/wechat-default/game.json.meta +++ b/Runtime/wechat-default/game.json.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: b42b83d3556956b0cc29cb30d6af3007 +guid: a34a85564b3af6ab257c82207538f0d6 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/images/background.jpg.meta b/Runtime/wechat-default/images/background.jpg.meta index d12ad7f71..66ac8d2e0 100644 --- a/Runtime/wechat-default/images/background.jpg.meta +++ b/Runtime/wechat-default/images/background.jpg.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: c5e5c22da111d0ebcfb60a9eee74cdc4 +guid: b563cfa417bcd27fc643a48f2adf418a DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/images/unity_logo.png.meta b/Runtime/wechat-default/images/unity_logo.png.meta index 516d77ae8..39a8b1033 100644 --- a/Runtime/wechat-default/images/unity_logo.png.meta +++ b/Runtime/wechat-default/images/unity_logo.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: ea12ca1c595c9f25201add831c9f40d7 +guid: fa738db20e2524709c51e910ac22f044 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/open-data/data/index.js.meta b/Runtime/wechat-default/open-data/data/index.js.meta index c3a8b04fb..82b28bfa4 100644 --- a/Runtime/wechat-default/open-data/data/index.js.meta +++ b/Runtime/wechat-default/open-data/data/index.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: d01bd3cd68d8bb6ea9c931b143bb8192 +guid: f4ae54cdff3da748114fa0222eadb834 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/open-data/data/utils.js.meta b/Runtime/wechat-default/open-data/data/utils.js.meta index a6b8a190a..144f63ee6 100644 --- a/Runtime/wechat-default/open-data/data/utils.js.meta +++ b/Runtime/wechat-default/open-data/data/utils.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: a946c3b701886feb67650e9fc1c5179b +guid: a4a2ffa37e51c73eb63e5472e6e545af DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/open-data/index.js.meta b/Runtime/wechat-default/open-data/index.js.meta index 4a76061f5..7676e9c9b 100644 --- a/Runtime/wechat-default/open-data/index.js.meta +++ b/Runtime/wechat-default/open-data/index.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 04b2c98757ee8f53f1711561c0332ea5 +guid: 2092f95fe5b89f8dfaa5325ec4433f2d DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/open-data/loading.js.meta b/Runtime/wechat-default/open-data/loading.js.meta index e2e49d557..8eaa61073 100644 --- a/Runtime/wechat-default/open-data/loading.js.meta +++ b/Runtime/wechat-default/open-data/loading.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 085c54a6e19e1e6714769b8ca4d59594 +guid: baef6b04040837c8100f80e4e9c607f0 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/open-data/render/image/avatar.png.meta b/Runtime/wechat-default/open-data/render/image/avatar.png.meta index 3e703b983..d55331614 100644 --- a/Runtime/wechat-default/open-data/render/image/avatar.png.meta +++ b/Runtime/wechat-default/open-data/render/image/avatar.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 64974041b6b9394168ca6447c1b4e395 +guid: 93cfe65ed515324323838cbea288485f DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/open-data/render/image/button1.png.meta b/Runtime/wechat-default/open-data/render/image/button1.png.meta index 47ceb965d..8b189041e 100644 --- a/Runtime/wechat-default/open-data/render/image/button1.png.meta +++ b/Runtime/wechat-default/open-data/render/image/button1.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 438e900b8d5aa22c6ea822001ae153b7 +guid: f78b88b5ed38c780dc59974b6f1f9555 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/open-data/render/image/button2.png.meta b/Runtime/wechat-default/open-data/render/image/button2.png.meta index 68d4fa172..3e77467d5 100644 --- a/Runtime/wechat-default/open-data/render/image/button2.png.meta +++ b/Runtime/wechat-default/open-data/render/image/button2.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 0e5e8578d91966f1090729aebde9fd2e +guid: f4505f6902a7db4f734e6bfa51950014 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/open-data/render/image/button3.png.meta b/Runtime/wechat-default/open-data/render/image/button3.png.meta index 3ae064f28..d4eb9307a 100644 --- a/Runtime/wechat-default/open-data/render/image/button3.png.meta +++ b/Runtime/wechat-default/open-data/render/image/button3.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 4f19ab6459b9d961cf0c8e2b57c11fbe +guid: 076633434ca2a2cdfcfaacf233130d52 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/open-data/render/image/loading.png.meta b/Runtime/wechat-default/open-data/render/image/loading.png.meta index 63377b48b..2fb326b5d 100644 --- a/Runtime/wechat-default/open-data/render/image/loading.png.meta +++ b/Runtime/wechat-default/open-data/render/image/loading.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 199d4158a7ee9a4fd5ea09f3ef394bf6 +guid: 08e9da464f1908e43e8569a8046e26b1 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/open-data/render/image/nameBg.png.meta b/Runtime/wechat-default/open-data/render/image/nameBg.png.meta index b34212a94..5fdd70420 100644 --- a/Runtime/wechat-default/open-data/render/image/nameBg.png.meta +++ b/Runtime/wechat-default/open-data/render/image/nameBg.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: ccf17c2fa09f2ba8516bf4e3bbfc10ac +guid: b5c6c22af9585f5c1c5ab33efbc45014 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/open-data/render/image/rankAvatar.png.meta b/Runtime/wechat-default/open-data/render/image/rankAvatar.png.meta index 06a9f0639..07c7da7cf 100644 --- a/Runtime/wechat-default/open-data/render/image/rankAvatar.png.meta +++ b/Runtime/wechat-default/open-data/render/image/rankAvatar.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: ca837f27096af7671567d6fabd4d67ba +guid: 62408429e650da567ca3d78a4f06dfc0 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/open-data/render/image/rankBg.png.meta b/Runtime/wechat-default/open-data/render/image/rankBg.png.meta index 5ebd05f60..48725dcfa 100644 --- a/Runtime/wechat-default/open-data/render/image/rankBg.png.meta +++ b/Runtime/wechat-default/open-data/render/image/rankBg.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: a051664e041711cd5646c38378b06d25 +guid: f343922671a0ccdb2a6d5302bfc4cf14 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/open-data/render/image/shareBg.png.meta b/Runtime/wechat-default/open-data/render/image/shareBg.png.meta index 4712f2ed9..9e2d78503 100644 --- a/Runtime/wechat-default/open-data/render/image/shareBg.png.meta +++ b/Runtime/wechat-default/open-data/render/image/shareBg.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: f7f150b597814cfd610d5b59d2278705 +guid: f134fcc0e857c2e4dfb4544f59074245 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/open-data/render/image/shareBg2.png.meta b/Runtime/wechat-default/open-data/render/image/shareBg2.png.meta index 9617b69b4..b8c37dde6 100644 --- a/Runtime/wechat-default/open-data/render/image/shareBg2.png.meta +++ b/Runtime/wechat-default/open-data/render/image/shareBg2.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: b91c447dd5e35111ac03b6c2a0385492 +guid: 92abfcf286bebd25d2b5bdd762905d14 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/open-data/render/styles/friendRank.js.meta b/Runtime/wechat-default/open-data/render/styles/friendRank.js.meta index e37f38fb5..018788197 100644 --- a/Runtime/wechat-default/open-data/render/styles/friendRank.js.meta +++ b/Runtime/wechat-default/open-data/render/styles/friendRank.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: b4bd31f18fb3ee1c8033e691b2bbea8d +guid: 51fe5680a1214e68bcf28c2798e1681a DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/open-data/render/styles/tips.js.meta b/Runtime/wechat-default/open-data/render/styles/tips.js.meta index 36eafef02..a8166c221 100644 --- a/Runtime/wechat-default/open-data/render/styles/tips.js.meta +++ b/Runtime/wechat-default/open-data/render/styles/tips.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 7d8839d4d83dfff111aec3e9dc85d0c8 +guid: 89f5930eb4c8f068d1fcb9bd5079d1f2 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/open-data/render/tpls/friendRank.js.meta b/Runtime/wechat-default/open-data/render/tpls/friendRank.js.meta index deff64980..18a29272f 100644 --- a/Runtime/wechat-default/open-data/render/tpls/friendRank.js.meta +++ b/Runtime/wechat-default/open-data/render/tpls/friendRank.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 8d521902dd851be1d4e3ed52124db2bf +guid: 13f29f03fa8aa8111517d70d74c58b0f DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/open-data/render/tpls/tips.js.meta b/Runtime/wechat-default/open-data/render/tpls/tips.js.meta index 5f410be53..b6630b933 100644 --- a/Runtime/wechat-default/open-data/render/tpls/tips.js.meta +++ b/Runtime/wechat-default/open-data/render/tpls/tips.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 4d5e78f4eca41760143c72c7b458d033 +guid: a2b19b0fc9378a674a5d2ac691ff2f89 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/plugin-config.js.meta b/Runtime/wechat-default/plugin-config.js.meta index 942bd66e4..e1f5e6891 100644 --- a/Runtime/wechat-default/plugin-config.js.meta +++ b/Runtime/wechat-default/plugin-config.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 1fb83c91e4aee7446eb5b0edea5e82e1 +guid: 47f3b7cdccb3dde5c92b45250b647858 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/plugins/check-update.js.meta b/Runtime/wechat-default/plugins/check-update.js.meta index 57a0f0e56..35dd01863 100644 --- a/Runtime/wechat-default/plugins/check-update.js.meta +++ b/Runtime/wechat-default/plugins/check-update.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: e35fd26a31cbed060dd3d750f9d72695 +guid: a62b99ab8165416ca20168ea29b4a952 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/plugins/screen-adapter.js.meta b/Runtime/wechat-default/plugins/screen-adapter.js.meta index 8acef41ca..967f0e16f 100644 --- a/Runtime/wechat-default/plugins/screen-adapter.js.meta +++ b/Runtime/wechat-default/plugins/screen-adapter.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 9da547bc01a6a2acb8c17f2f20e19029 +guid: b0a53dabaa5a74a38209aea69eb2dc33 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/project.config.json.meta b/Runtime/wechat-default/project.config.json.meta index 402f42892..6fdc15b2e 100644 --- a/Runtime/wechat-default/project.config.json.meta +++ b/Runtime/wechat-default/project.config.json.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: a2b72c0f351df2683daebe5dddfc8a70 +guid: 413118a5cf3f1b34c76955684798db9a DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/texture-config.js.meta b/Runtime/wechat-default/texture-config.js.meta index 554002aa7..1a6bbe054 100644 --- a/Runtime/wechat-default/texture-config.js.meta +++ b/Runtime/wechat-default/texture-config.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 2448ddf5c4495366fcaeee98719a09b5 +guid: 4bb5db37aefba56d7f0a1e749835cb33 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-namespace.js.meta b/Runtime/wechat-default/unity-namespace.js.meta index ef5903c1d..feca59e3d 100644 --- a/Runtime/wechat-default/unity-namespace.js.meta +++ b/Runtime/wechat-default/unity-namespace.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 798896c13156b85bc6f15aad33a8d4ee +guid: 1e2ba00d9293c82aff05afd9fe16c5c4 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/TCPSocket/index.js.meta b/Runtime/wechat-default/unity-sdk/TCPSocket/index.js.meta index 99c4842a5..86dc9f367 100644 --- a/Runtime/wechat-default/unity-sdk/TCPSocket/index.js.meta +++ b/Runtime/wechat-default/unity-sdk/TCPSocket/index.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: e02ee6ed86c74a47a7d6456235a5087c +guid: 1fd7ec81070198e1e409fc3c03b30077 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/UDPSocket/index.js.meta b/Runtime/wechat-default/unity-sdk/UDPSocket/index.js.meta index e77b99b00..11f7fc823 100644 --- a/Runtime/wechat-default/unity-sdk/UDPSocket/index.js.meta +++ b/Runtime/wechat-default/unity-sdk/UDPSocket/index.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: f9f325f65aa817981c3fbabf3909db18 +guid: da894aa1837639b04bf0032b195eb8ec DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/ad.js.meta b/Runtime/wechat-default/unity-sdk/ad.js.meta index 7dc2b5d36..447f51071 100644 --- a/Runtime/wechat-default/unity-sdk/ad.js.meta +++ b/Runtime/wechat-default/unity-sdk/ad.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 8525735d9f92ee18a7d9dbd978ffa223 +guid: f8c87b7e8c05a6d4f843ea84575fd490 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/audio/common.js.meta b/Runtime/wechat-default/unity-sdk/audio/common.js.meta index d70f77789..54fa889c3 100644 --- a/Runtime/wechat-default/unity-sdk/audio/common.js.meta +++ b/Runtime/wechat-default/unity-sdk/audio/common.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: e344baa314144d93cf52ad2d6767b592 +guid: 0cbec52214fd96a6c633162b314e8ed6 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/audio/const.js.meta b/Runtime/wechat-default/unity-sdk/audio/const.js.meta index f749d8144..bd95f57d7 100644 --- a/Runtime/wechat-default/unity-sdk/audio/const.js.meta +++ b/Runtime/wechat-default/unity-sdk/audio/const.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 3a1e8f042c85a5effb843571990d1035 +guid: 70142c02e9f9059e18cc3bb7e8c2be34 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/audio/index.js.meta b/Runtime/wechat-default/unity-sdk/audio/index.js.meta index 81c5c94bc..0645f3dfc 100644 --- a/Runtime/wechat-default/unity-sdk/audio/index.js.meta +++ b/Runtime/wechat-default/unity-sdk/audio/index.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 18084fa3a87ec01eba1f7ec23e6ffcc9 +guid: 3a446f2a72bcbb53cd0cd2aa6b6c5815 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/audio/inner-audio.js.meta b/Runtime/wechat-default/unity-sdk/audio/inner-audio.js.meta index bb23517de..c12e7bbd1 100644 --- a/Runtime/wechat-default/unity-sdk/audio/inner-audio.js.meta +++ b/Runtime/wechat-default/unity-sdk/audio/inner-audio.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: c259cfaf1015ce5ed277a61b4790372d +guid: 2c11febf7150d908a418ba26308ce0a3 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/audio/store.js.meta b/Runtime/wechat-default/unity-sdk/audio/store.js.meta index 5febee21b..bc09eec5b 100644 --- a/Runtime/wechat-default/unity-sdk/audio/store.js.meta +++ b/Runtime/wechat-default/unity-sdk/audio/store.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: b253bb5c7bccf899b26fc1b481bb7249 +guid: 309d585c1352c5439f9517228624fa97 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/audio/unity-audio.js.meta b/Runtime/wechat-default/unity-sdk/audio/unity-audio.js.meta index 3086a48e5..b02af3b69 100644 --- a/Runtime/wechat-default/unity-sdk/audio/unity-audio.js.meta +++ b/Runtime/wechat-default/unity-sdk/audio/unity-audio.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 1f0b0ff6d819144690eaa93d2b15a036 +guid: 278a12d3f17b5dcf632dfb525790e244 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/audio/utils.js.meta b/Runtime/wechat-default/unity-sdk/audio/utils.js.meta index f38468a5c..a3d0701d0 100644 --- a/Runtime/wechat-default/unity-sdk/audio/utils.js.meta +++ b/Runtime/wechat-default/unity-sdk/audio/utils.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: d5650eb26db749e2b36141b276fe569a +guid: bbb1f9b179e8b57a3f173c5deacb7356 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/authorize.js.meta b/Runtime/wechat-default/unity-sdk/authorize.js.meta index f83fad384..cc8102b56 100644 --- a/Runtime/wechat-default/unity-sdk/authorize.js.meta +++ b/Runtime/wechat-default/unity-sdk/authorize.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 208eb092fd6fdde24be8b793be2aff39 +guid: bd93fe376eb03d05595f222454598bcd DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/bluetooth/index.js.meta b/Runtime/wechat-default/unity-sdk/bluetooth/index.js.meta index 11f869592..17442fa59 100644 --- a/Runtime/wechat-default/unity-sdk/bluetooth/index.js.meta +++ b/Runtime/wechat-default/unity-sdk/bluetooth/index.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 9ae22c78b9bd3d5388d9b940bd6f32b0 +guid: 46a37b814ee117175a7b4938144376f3 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/camera.js.meta b/Runtime/wechat-default/unity-sdk/camera.js.meta index 2b5993f10..605b2f371 100644 --- a/Runtime/wechat-default/unity-sdk/camera.js.meta +++ b/Runtime/wechat-default/unity-sdk/camera.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 65e604051ef70382531fcac12de59a92 +guid: fc4333fef5f8eb7a42bff408cbe23d47 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/canvas-context.js.meta b/Runtime/wechat-default/unity-sdk/canvas-context.js.meta index 78069a0a4..fa6faed4d 100644 --- a/Runtime/wechat-default/unity-sdk/canvas-context.js.meta +++ b/Runtime/wechat-default/unity-sdk/canvas-context.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 5c9b6da8d5d2b39e78653d0c16fdb3fe +guid: b87e20b60a9a1a899409ad14deee1062 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/canvas.js.meta b/Runtime/wechat-default/unity-sdk/canvas.js.meta index bffa239ec..0ae625629 100644 --- a/Runtime/wechat-default/unity-sdk/canvas.js.meta +++ b/Runtime/wechat-default/unity-sdk/canvas.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 26bb277e81e1f464992b5bbffffb36a2 +guid: e71fdd9f7be976cef14b35ff69e075a9 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/chat.js.meta b/Runtime/wechat-default/unity-sdk/chat.js.meta index 0ea83ce3b..886e3f342 100644 --- a/Runtime/wechat-default/unity-sdk/chat.js.meta +++ b/Runtime/wechat-default/unity-sdk/chat.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 31f791cce9ea86bc2267f8078e507bd3 +guid: ea336201a90a51a5e448c80afeec8ace DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/cloud.js.meta b/Runtime/wechat-default/unity-sdk/cloud.js.meta index a291dd9d3..8d21becda 100644 --- a/Runtime/wechat-default/unity-sdk/cloud.js.meta +++ b/Runtime/wechat-default/unity-sdk/cloud.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: ca3c03c527ec5f3db513ce9fbf6d9bd9 +guid: 3f219e0e941ed5b91003ee39f9931132 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/conf.js.meta b/Runtime/wechat-default/unity-sdk/conf.js.meta index bde3f640e..b91ab7cfb 100644 --- a/Runtime/wechat-default/unity-sdk/conf.js.meta +++ b/Runtime/wechat-default/unity-sdk/conf.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 7e3477ce55f6f7e32310c0c89e044974 +guid: d2c1173ce8b78eace196e6752f894075 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/file-info.js.meta b/Runtime/wechat-default/unity-sdk/file-info.js.meta index 8897966ef..0829af51a 100644 --- a/Runtime/wechat-default/unity-sdk/file-info.js.meta +++ b/Runtime/wechat-default/unity-sdk/file-info.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: bb9176a84ee722dfb3b610fbb99b9223 +guid: a2b760f51521561fc2fa509f986792a0 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/fix.js.meta b/Runtime/wechat-default/unity-sdk/fix.js.meta index 46db784ce..ff09a4a32 100644 --- a/Runtime/wechat-default/unity-sdk/fix.js.meta +++ b/Runtime/wechat-default/unity-sdk/fix.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: cc982427b49d3fae8227902898b8ed48 +guid: 2a86751122ffc632613edafd3f72ac68 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/font/fix-cmap.js.meta b/Runtime/wechat-default/unity-sdk/font/fix-cmap.js.meta index 9f1598b9b..85cacbba4 100644 --- a/Runtime/wechat-default/unity-sdk/font/fix-cmap.js.meta +++ b/Runtime/wechat-default/unity-sdk/font/fix-cmap.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: d9707be05f61ec8fca45b38ef3ea01ca +guid: baba4f9aa47f8cf8d05c7d8561fe5788 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/font/index.js.meta b/Runtime/wechat-default/unity-sdk/font/index.js.meta index c4e72ae5b..81e77cd15 100644 --- a/Runtime/wechat-default/unity-sdk/font/index.js.meta +++ b/Runtime/wechat-default/unity-sdk/font/index.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 888fa9472eb38c3f0744d50e00bdcf2e +guid: 66e1fcbf07a614f831b701c14491075a DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/font/read-metrics.js.meta b/Runtime/wechat-default/unity-sdk/font/read-metrics.js.meta index 785cb61d7..41ec0c75d 100644 --- a/Runtime/wechat-default/unity-sdk/font/read-metrics.js.meta +++ b/Runtime/wechat-default/unity-sdk/font/read-metrics.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 7a281fa0f5db8b4f54d9d4b2cc29b0be +guid: 8fd12d2666524192674d46e491c75d1a DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/font/split-sc.js.meta b/Runtime/wechat-default/unity-sdk/font/split-sc.js.meta index 54266baa9..33207d978 100644 --- a/Runtime/wechat-default/unity-sdk/font/split-sc.js.meta +++ b/Runtime/wechat-default/unity-sdk/font/split-sc.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 3dc8adaae9e3aa5928dec007fa5f4668 +guid: 625114e7cf70e73acc8ebdbd6f278ce6 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/font/util.js.meta b/Runtime/wechat-default/unity-sdk/font/util.js.meta index 45c64ebda..03d6ef817 100644 --- a/Runtime/wechat-default/unity-sdk/font/util.js.meta +++ b/Runtime/wechat-default/unity-sdk/font/util.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: b588ff43dce224ba64950532f6b5d373 +guid: bdbc363dbefb659df19732ebf71d2f94 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/fs.js b/Runtime/wechat-default/unity-sdk/fs.js index a245372af..6ea13c491 100644 --- a/Runtime/wechat-default/unity-sdk/fs.js +++ b/Runtime/wechat-default/unity-sdk/fs.js @@ -408,7 +408,9 @@ export default { }, WX_FileSystemManagerReadSync(option, callbackId) { const fs = wx.getFileSystemManager(); - const res = fs.readSync(formatJsonStr(option)); + const optionConfig = formatJsonStr(option); + optionConfig.arrayBuffer = new ArrayBuffer(optionConfig.arrayBuffer.length); + const res = fs.readSync(optionConfig); cacheArrayBuffer(callbackId, res.arrayBuffer); return JSON.stringify({ bytesRead: res.bytesRead, @@ -438,16 +440,12 @@ export default { const optionConfig = formatJsonStr(option); optionConfig.data = data.buffer; const res = fs.writeSync(optionConfig); - return JSON.stringify({ - mode: res.bytesWritten, - }); + return JSON.stringify(res); }, WX_FileSystemManagerWriteStringSync(option) { const fs = wx.getFileSystemManager(); const res = fs.writeSync(formatJsonStr(option)); - return JSON.stringify({ - mode: res.bytesWritten, - }); + return JSON.stringify(res); }, WX_FileSystemManagerOpenSync(option) { const fs = wx.getFileSystemManager(); diff --git a/Runtime/wechat-default/unity-sdk/fs.js.meta b/Runtime/wechat-default/unity-sdk/fs.js.meta index f969b3848..8ab0e892a 100644 --- a/Runtime/wechat-default/unity-sdk/fs.js.meta +++ b/Runtime/wechat-default/unity-sdk/fs.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: ea1099cd0add8224798e924d59c4cff0 +guid: fd99ed3a1e04b42f2ddce04c1e3bb446 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/game-club.js.meta b/Runtime/wechat-default/unity-sdk/game-club.js.meta index 4f3e867e3..2efa90d9e 100644 --- a/Runtime/wechat-default/unity-sdk/game-club.js.meta +++ b/Runtime/wechat-default/unity-sdk/game-club.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 888642ec12b7242b71b8f7f6a4240670 +guid: 2242564fb5f83220d4743bad3e5a61cb DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/game-recorder.js.meta b/Runtime/wechat-default/unity-sdk/game-recorder.js.meta index c97e21791..a702e80bd 100644 --- a/Runtime/wechat-default/unity-sdk/game-recorder.js.meta +++ b/Runtime/wechat-default/unity-sdk/game-recorder.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: f5fa9ea295dcc11874ef073aaab524d5 +guid: 1a05ceba0a8ded95e7c673fd46f67543 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/gyroscope/index.js.meta b/Runtime/wechat-default/unity-sdk/gyroscope/index.js.meta index 39687c07c..5c87b8f09 100644 --- a/Runtime/wechat-default/unity-sdk/gyroscope/index.js.meta +++ b/Runtime/wechat-default/unity-sdk/gyroscope/index.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 68fc28908be51853c07a1a296348f57f +guid: da2b7789e2e3a713573a2dd18fd552e3 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/index.js.meta b/Runtime/wechat-default/unity-sdk/index.js.meta index 517f898d4..6c2190194 100644 --- a/Runtime/wechat-default/unity-sdk/index.js.meta +++ b/Runtime/wechat-default/unity-sdk/index.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 823067e86c7bae8511efaa858181e43d +guid: b54a8568e4e0f6011cc5a6e110c0f8b8 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/logger.js.meta b/Runtime/wechat-default/unity-sdk/logger.js.meta index f57b5fecf..d5351d4e9 100644 --- a/Runtime/wechat-default/unity-sdk/logger.js.meta +++ b/Runtime/wechat-default/unity-sdk/logger.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 7df2634c2804b6e0dc37d216d49b9bf0 +guid: 1986225975efaf2e93a85f0aea78b98e DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/mobileKeyboard/index.js.meta b/Runtime/wechat-default/unity-sdk/mobileKeyboard/index.js.meta index 6f969bcca..ff3ab756f 100644 --- a/Runtime/wechat-default/unity-sdk/mobileKeyboard/index.js.meta +++ b/Runtime/wechat-default/unity-sdk/mobileKeyboard/index.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 5dff180403e2e6c35a46414d69f4d0b0 +guid: 125b3d2068fd1f605bafcc4baec0e901 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/module-helper.js.meta b/Runtime/wechat-default/unity-sdk/module-helper.js.meta index 146fae51d..26b94244c 100644 --- a/Runtime/wechat-default/unity-sdk/module-helper.js.meta +++ b/Runtime/wechat-default/unity-sdk/module-helper.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 7af60c82bd8a20742d6c632537b5dd87 +guid: 4dabf814360e2e6367c09252580a7b6d DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/open-data.js.meta b/Runtime/wechat-default/unity-sdk/open-data.js.meta index 8dfe57769..cfc3bb2c2 100644 --- a/Runtime/wechat-default/unity-sdk/open-data.js.meta +++ b/Runtime/wechat-default/unity-sdk/open-data.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 74dd92d4bfc42932f7e18fc4c75a4aef +guid: e04484372de8cc7955f237e497bfeac4 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/recorder.js.meta b/Runtime/wechat-default/unity-sdk/recorder.js.meta index f34eae704..b124e9f6d 100644 --- a/Runtime/wechat-default/unity-sdk/recorder.js.meta +++ b/Runtime/wechat-default/unity-sdk/recorder.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: fbfe92a4eecd29c196435fd6836c59c9 +guid: f8b94b0487df5114827ee9a68c7c5e4c DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/resType.js b/Runtime/wechat-default/unity-sdk/resType.js index 7ce705b83..e81a85770 100644 --- a/Runtime/wechat-default/unity-sdk/resType.js +++ b/Runtime/wechat-default/unity-sdk/resType.js @@ -929,9 +929,6 @@ export const ResType = { anyKeyWord: 'string', errMsg: 'string', }, - ReserveChannelsLiveOption: { - noticeId: 'string', - }, ScanCodeSuccessCallbackResult: { charSet: 'string', path: 'string', diff --git a/Runtime/wechat-default/unity-sdk/resType.js.meta b/Runtime/wechat-default/unity-sdk/resType.js.meta index f1cf3f95b..1ad361e05 100644 --- a/Runtime/wechat-default/unity-sdk/resType.js.meta +++ b/Runtime/wechat-default/unity-sdk/resType.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: e589740b82d48174c50d9fbb972a8984 +guid: 8ec20bf4f63a5d0c146fa1c4c750bcf5 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/resTypeOther.js.meta b/Runtime/wechat-default/unity-sdk/resTypeOther.js.meta index e3e4eba06..3b72829e6 100644 --- a/Runtime/wechat-default/unity-sdk/resTypeOther.js.meta +++ b/Runtime/wechat-default/unity-sdk/resTypeOther.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 773729262e107e9fca25b0ebcaed9a05 +guid: 7f9bfe4c08506de65a47f8c276b5314a DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/response.js.meta b/Runtime/wechat-default/unity-sdk/response.js.meta index de2b647a9..add2a41f7 100644 --- a/Runtime/wechat-default/unity-sdk/response.js.meta +++ b/Runtime/wechat-default/unity-sdk/response.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: d6993fa3c6d7f6b4b7252bc1674a45c9 +guid: 88190233072c3bb835932621162921c9 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/sdk.js.meta b/Runtime/wechat-default/unity-sdk/sdk.js.meta index 7d813c489..883c06e1e 100644 --- a/Runtime/wechat-default/unity-sdk/sdk.js.meta +++ b/Runtime/wechat-default/unity-sdk/sdk.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 83887fa3ddaeca73a2ba416a93bdc514 +guid: 0dac6d1330781fa97de87a6a7d68ecf1 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/share.js.meta b/Runtime/wechat-default/unity-sdk/share.js.meta index 3a82b8c35..01be58b83 100644 --- a/Runtime/wechat-default/unity-sdk/share.js.meta +++ b/Runtime/wechat-default/unity-sdk/share.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 0ec7ac03b3d98efd4eb83846c10883dd +guid: 90c5c5ce8b9b65508d8cc148b89d7319 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/storage.js.meta b/Runtime/wechat-default/unity-sdk/storage.js.meta index e8016173c..25ece48b9 100644 --- a/Runtime/wechat-default/unity-sdk/storage.js.meta +++ b/Runtime/wechat-default/unity-sdk/storage.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 5e4500be6cc623c1736805559e3c796a +guid: 42df6ef478d79a1d29f475896de57d4b DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/texture.js.meta b/Runtime/wechat-default/unity-sdk/texture.js.meta index e3e6755f7..9591a6c62 100644 --- a/Runtime/wechat-default/unity-sdk/texture.js.meta +++ b/Runtime/wechat-default/unity-sdk/texture.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 4f3553d6cfa45bdc651da395a9f40dd4 +guid: 35fc2d287bec7ad3c5521828361219c0 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/touch/index.js.meta b/Runtime/wechat-default/unity-sdk/touch/index.js.meta index 7b3a20d31..ecb5e5e0c 100644 --- a/Runtime/wechat-default/unity-sdk/touch/index.js.meta +++ b/Runtime/wechat-default/unity-sdk/touch/index.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 2f7008ef9cdbfd93fdc383492fecc145 +guid: 9c7b297f8e40f01e45eaad1dd84d2b09 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/upload-file.js.meta b/Runtime/wechat-default/unity-sdk/upload-file.js.meta index a023a9b98..3eb0e7fea 100644 --- a/Runtime/wechat-default/unity-sdk/upload-file.js.meta +++ b/Runtime/wechat-default/unity-sdk/upload-file.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 7a735c256e8d9459d3ecae95e732acda +guid: eb3c06a9e661a285676f4fad60e484fc DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/userinfo.js.meta b/Runtime/wechat-default/unity-sdk/userinfo.js.meta index d194a4106..523890e11 100644 --- a/Runtime/wechat-default/unity-sdk/userinfo.js.meta +++ b/Runtime/wechat-default/unity-sdk/userinfo.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 4a118aacd38ac761bd24bdfabf90fea7 +guid: e91ece2cca326263d28b15fb5d3a993a DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/util.js.meta b/Runtime/wechat-default/unity-sdk/util.js.meta index 272d71ff1..99fe4b809 100644 --- a/Runtime/wechat-default/unity-sdk/util.js.meta +++ b/Runtime/wechat-default/unity-sdk/util.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 3802cd40445c20c34a162a5176cf0a26 +guid: acf2c799c69ae0a546aab7226523c6ad DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/utils.js.meta b/Runtime/wechat-default/unity-sdk/utils.js.meta index a8f76a1ce..e147c79b6 100644 --- a/Runtime/wechat-default/unity-sdk/utils.js.meta +++ b/Runtime/wechat-default/unity-sdk/utils.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: a05478d69d1128fed35cceae511212b1 +guid: d775901b6100754c33ffd2a51b9bf9b1 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/video.js.meta b/Runtime/wechat-default/unity-sdk/video.js.meta index 69e9d1c5b..f18e3b15d 100644 --- a/Runtime/wechat-default/unity-sdk/video.js.meta +++ b/Runtime/wechat-default/unity-sdk/video.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 9ac6c31e8896bcf53bab90d3dec6e95d +guid: ad1ac117c897e9326b5567069e741cf3 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/unity-sdk/video/index.js b/Runtime/wechat-default/unity-sdk/video/index.js index 05e5b09e2..a9d192383 100644 --- a/Runtime/wechat-default/unity-sdk/video/index.js +++ b/Runtime/wechat-default/unity-sdk/video/index.js @@ -2,9 +2,11 @@ /* eslint-disable @typescript-eslint/naming-convention */ import { isH5Renderer, isSupportVideoPlayer, isDebug, isPc, isDevtools } from '../../check-version'; let FrameworkData = null; -const isWebVideo = isH5Renderer || isPc || isDevtools; + +const isWebVideo = (isH5Renderer && !GameGlobal.isIOSHighPerformanceModePlus) || isPc || isDevtools; const needCache = true; const cacheVideoDecoder = []; +const supportVideoFrame = !!GameGlobal.isIOSHighPerformanceModePlus; const videoInstances = {}; function _JS_Video_CanPlayFormat(format, data) { @@ -64,6 +66,7 @@ function _JS_Video_Create(url) { videoWidth: 0, videoHeight: 0, isReady: false, + stoped: false, paused: false, ended: false, seeking: false, @@ -71,13 +74,18 @@ function _JS_Video_Create(url) { }; // eslint-disable-next-line no-plusplus videoInstances[++videoInstanceIdCounter] = videoInstance; + + videoDecoder.remove(); videoDecoder.on('start', (res) => { if (isDebug) { console.warn('wxVideoDecoder start:', res); } videoInstance.paused = false; + videoInstance.stoped = false; if (!videoInstance.isReady) { - videoInstance.duration = res.video?.duration ?? 0; + if (res.video && res.video.duration) { + videoInstance.duration = res.video.duration / 1000; + } videoInstance.videoWidth = res.width ?? 0; videoInstance.videoHeight = res.height ?? 0; videoInstance.isReady = true; @@ -88,12 +96,7 @@ function _JS_Video_Create(url) { if (isDebug) { console.warn('wxVideoDecoder stop:', res); } - videoInstance.paused = true; - }); - videoDecoder.on('seek', (res) => { - if (isDebug) { - console.warn('wxVideoDecoder seek:', res); - } + videoInstance.stoped = true; }); videoDecoder.on('bufferchange', (res) => { if (isDebug) { @@ -114,20 +117,42 @@ function _JS_Video_Create(url) { }); // @ts-ignore videoDecoder.on('frame', (res) => { - // @ts-ignore videoInstance.currentTime = res.pts / 1000; - videoInstance.frameData = new Uint8ClampedArray(res.data); + + if (supportVideoFrame) { + + videoInstance.frameData?.close?.(); + } + videoInstance.frameData = res; }); - videoInstance.play = () => videoDecoder.start({ + const startOption = { source, - }); + }; + if (supportVideoFrame) { + startOption.videoDataType = 2; + } + videoInstance.play = () => { + if (videoInstance.seeking) { + videoInstance.seeking = false; + } + if (videoInstance.paused) { + videoInstance.paused = false; + videoDecoder.wait(false); + } + else { + videoDecoder.start(startOption); + } + }; videoInstance.pause = () => { - videoDecoder.stop(); + videoDecoder.wait(true); + videoInstance.paused = true; }; videoInstance.seek = (time) => { // @ts-ignore videoDecoder.avSync.seek({ stamp: time }); + videoInstance.seeking = true; + videoDecoder.emitter.emit('seek', {}); }; videoInstance.play(); videoInstance.destroy = () => { @@ -144,8 +169,10 @@ function _JS_Video_Create(url) { delete videoInstance.videoDecoder; delete videoInstance.onendedCallback; delete videoInstance.frameData; + videoInstance.stoped = false; videoInstance.paused = false; videoInstance.ended = false; + videoInstance.seeking = false; videoInstance.currentTime = 0; videoInstance.onended = null; }; @@ -204,7 +231,7 @@ function _JS_Video_IsPlaying(video) { return v.isPlaying; } const v = videoInstances[video]; - return v.isReady && !v.paused && !v.ended; + return v.isReady && !v.stoped && !v.paused && !v.ended; } function _JS_Video_IsReady(video) { const v = videoInstances[video]; @@ -219,14 +246,14 @@ function _JS_Video_Pause(video) { console.log('_JS_Video_Pause'); } const v = videoInstances[video]; - v.pause(); if (v.loopEndPollInterval) { clearInterval(v.loopEndPollInterval); } + v.pause(); } function _JS_Video_SetLoop(video, loop = false) { if (isDebug) { - console.log('_JS_Video_SetLoop', video); + console.log('_JS_Video_SetLoop', video, loop); } const v = videoInstances[video]; if (v.loopEndPollInterval) { @@ -237,8 +264,16 @@ function _JS_Video_SetLoop(video, loop = false) { v.loopEndPollInterval = setInterval(() => { if (typeof v.currentTime !== 'undefined' && typeof v.lastSeenPlaybackTime !== 'undefined') { - if (v.currentTime < v.lastSeenPlaybackTime) { - jsVideoEnded.apply(v); + const cur = Math.floor(v.currentTime); + const last = Math.floor(v.lastSeenPlaybackTime); + if (cur < last) { + const dur = v.duration; + const margin = 0.2; + const closeToBegin = margin * dur; + const closeToEnd = dur - closeToBegin; + if (cur < closeToBegin && last > closeToEnd) { + jsVideoEnded.apply(v); + } } } v.lastSeenPlaybackTime = v.currentTime; @@ -305,10 +340,11 @@ function _JS_Video_SetMute(video, muted) { const v = videoInstances[video]; v.muted = muted || jsVideoAllAudioTracksAreDisabled(v); } +// eslint-disable-next-line @typescript-eslint/no-unused-vars function _JS_Video_SetPlaybackRate(video, rate) { - if (isDebug) { - console.log('_JS_Video_SetPlaybackRate', video, rate); - } + + + @@ -394,7 +430,16 @@ function _JS_Video_UpdateToTexture(video, tex) { v.render(); } else { - GLctx.texImage2D(GLctx.TEXTURE_2D, 0, internalFormat, v.videoWidth, v.videoHeight, 0, format, GLctx.UNSIGNED_BYTE, v.frameData); + + const data = v.frameData?.data; + const source = supportVideoFrame ? data : new Uint8ClampedArray(data); + + if (supportVideoFrame) { + GLctx.texImage2D(GLctx.TEXTURE_2D, 0, internalFormat, format, GLctx.UNSIGNED_BYTE, source); + } + else { + GLctx.texImage2D(GLctx.TEXTURE_2D, 0, internalFormat, v.videoWidth, v.videoHeight, 0, format, GLctx.UNSIGNED_BYTE, source); + } } v.previousUploadedWidth = width; v.previousUploadedHeight = height; @@ -405,7 +450,15 @@ function _JS_Video_UpdateToTexture(video, tex) { v.render(); } else { - GLctx.texImage2D(GLctx.TEXTURE_2D, 0, internalFormat, v.videoWidth, v.videoHeight, 0, format, GLctx.UNSIGNED_BYTE, v.frameData); + const data = v.frameData?.data; + const source = supportVideoFrame ? data : new Uint8ClampedArray(data); + + if (supportVideoFrame) { + GLctx.texImage2D(GLctx.TEXTURE_2D, 0, internalFormat, format, GLctx.UNSIGNED_BYTE, source); + } + else { + GLctx.texImage2D(GLctx.TEXTURE_2D, 0, internalFormat, v.videoWidth, v.videoHeight, 0, format, GLctx.UNSIGNED_BYTE, source); + } } } GLctx.pixelStorei(GLctx.UNPACK_FLIP_Y_WEBGL, false); diff --git a/Runtime/wechat-default/unity-sdk/video/index.js.meta b/Runtime/wechat-default/unity-sdk/video/index.js.meta index ea791a320..2355abde1 100644 --- a/Runtime/wechat-default/unity-sdk/video/index.js.meta +++ b/Runtime/wechat-default/unity-sdk/video/index.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 7346b515ceee0391716b434904319371 +guid: 5030f5c65af1e23fc50b7a3361840dfb DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/wasmcode/game.js.meta b/Runtime/wechat-default/wasmcode/game.js.meta index c7ea0e4e4..6283f643a 100644 --- a/Runtime/wechat-default/wasmcode/game.js.meta +++ b/Runtime/wechat-default/wasmcode/game.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 8bf3b937fe76fe3adc5fecfe5b09cf7d +guid: 8ab116adbd42f4bb639b0ed76ebb9c2d DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/weapp-adapter.js.meta b/Runtime/wechat-default/weapp-adapter.js.meta index cfb598de3..f80826518 100644 --- a/Runtime/wechat-default/weapp-adapter.js.meta +++ b/Runtime/wechat-default/weapp-adapter.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: ddd68797317397ed2c2db6930b8e0063 +guid: edfb4338254f303785aefe81499b751a DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/wechat-default/workers/response/index.js.meta b/Runtime/wechat-default/workers/response/index.js.meta index 6e25aa091..04f49ac03 100644 --- a/Runtime/wechat-default/workers/response/index.js.meta +++ b/Runtime/wechat-default/workers/response/index.js.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: dc82c0f8339f7b076f771ee4118550a4 +guid: 15217b41e5482fd6504a48e50e7ae291 DefaultImporter: externalObjects: {} userData: diff --git a/package.json b/package.json index 745310516..9dd0aac8a 100644 --- a/package.json +++ b/package.json @@ -1 +1 @@ -{"name":"com.qq.weixin.minigame","displayName":"WXSDK","description":"WeChat Mini Game Tuanjie Engine Adapter SDK Package.","version":"0.1.23","unity":"2019.4","unityRelease":"29f1","keywords":["Tuanjie","WX"],"dependencies":{}} +{"name":"com.qq.weixin.minigame","displayName":"WXSDK","description":"WeChat Mini Game Tuanjie Engine Adapter SDK Package.","version":"0.1.24","unity":"2019.4","unityRelease":"29f1","keywords":["Tuanjie","WX"],"dependencies":{}}