mirror of
https://github.com/wechat-miniprogram/minigame-tuanjie-transform-sdk.git
synced 2026-04-22 01:35:56 +08:00
Auto-publish.
This commit is contained in:
parent
25827f8ab9
commit
8c7d075e1c
136
Editor/BuildProfile/WeixinMiniGameSettings.cs
Normal file
136
Editor/BuildProfile/WeixinMiniGameSettings.cs
Normal file
@ -0,0 +1,136 @@
|
||||
#if TUANJIE_1_4_OR_NEWER
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Reflection;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using UnityEditor.Build.Profile;
|
||||
|
||||
namespace WeChatWASM
|
||||
{
|
||||
public class WeixinMiniGameSettings : MiniGameSettings
|
||||
{
|
||||
public WXProjectConf ProjectConf;
|
||||
public SDKOptions SDKOptions;
|
||||
public CompileOptions CompileOptions;
|
||||
public CompressTexture CompressTexture;
|
||||
public List<string> PlayerPrefsKeys = new List<string>();
|
||||
public FontOptions FontOptions;
|
||||
|
||||
[SerializeField] public bool m_AutomaticFillInstantGame = true;
|
||||
|
||||
public WeixinMiniGameSettings(MiniGameSettingsEditor editor) : base(editor)
|
||||
{
|
||||
}
|
||||
|
||||
public bool PreprocessBuild(BuildProfile buildProfile, BuildOptions options)
|
||||
{
|
||||
bool result = true;
|
||||
if (!string.IsNullOrEmpty(buildProfile.buildPath))
|
||||
{
|
||||
this.ProjectConf.DST = buildProfile.buildPath;
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogError("Build Path is empty!");
|
||||
result = false;
|
||||
}
|
||||
this.CompileOptions.DevelopBuild = buildProfile.platformSettings.development;
|
||||
this.CompileOptions.AutoProfile = buildProfile.platformSettings.connectProfiler;
|
||||
|
||||
this.CompileOptions.CleanBuild = ((int)options & (int)BuildOptions.CleanBuildCache) != 0;
|
||||
this.CompileOptions.ScriptOnly = ((int)options & (int)BuildOptions.BuildScriptsOnly) != 0;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
internal void FillAutoStreamingAutomatically()
|
||||
{
|
||||
// Instant Game
|
||||
if (WXConvertCore.IsInstantGameAutoStreaming())
|
||||
{
|
||||
if (m_AutomaticFillInstantGame)
|
||||
{
|
||||
ProjectConf.CDN = WXConvertCore.GetInstantGameAutoStreamingCDN();
|
||||
if (!ProjectConf.bundlePathIdentifier.Contains("CUS/CustomAB;"))
|
||||
{
|
||||
ProjectConf.bundlePathIdentifier = "CUS/CustomAB;" + ProjectConf.bundlePathIdentifier;
|
||||
}
|
||||
if (!ProjectConf.bundlePathIdentifier.Contains("AS;"))
|
||||
{
|
||||
ProjectConf.bundlePathIdentifier = "AS;" + ProjectConf.bundlePathIdentifier;
|
||||
}
|
||||
ProjectConf.dataFileSubPrefix = "CUS";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void AutoStreamingLoad()
|
||||
{
|
||||
if (!WXConvertCore.IsInstantGameAutoStreaming())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Generate
|
||||
Type asTextureUIType = Type.GetType("Unity.AutoStreaming.ASTextureUI,Unity.InstantGame.Editor");
|
||||
if (asTextureUIType == null)
|
||||
{
|
||||
Debug.LogError("Type 'Unity.AutoStreaming.ASTextureUI' not found. ");
|
||||
return;
|
||||
}
|
||||
MethodInfo generateTextureAssetBundlesMethod = asTextureUIType.GetMethod("GenerateTextureAssetBundles", BindingFlags.NonPublic | BindingFlags.Static);
|
||||
generateTextureAssetBundlesMethod?.Invoke(null, new object[] { false });
|
||||
|
||||
// reflection to get WXConvertCore.FirstBundlePath
|
||||
String FirstBundlePath = "";
|
||||
var type = Type.GetType("WeChatWASM.WXConvertCore,WxEditor");
|
||||
if (type == null)
|
||||
{
|
||||
Debug.LogError("Type 'WeChatWASM.WXConvertCore,WxEditor' not found. ");
|
||||
return;
|
||||
}
|
||||
FieldInfo fieldInfo = type.GetField("FirstBundlePath", BindingFlags.Public | BindingFlags.Static);
|
||||
if (fieldInfo != null)
|
||||
{
|
||||
FirstBundlePath = fieldInfo.GetValue(null) as String;
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(FirstBundlePath) && File.Exists(FirstBundlePath))
|
||||
{
|
||||
Type igBuildPipelineType = Type.GetType("Unity.InstantGame.IGBuildPipeline,Unity.InstantGame.Editor");
|
||||
if (igBuildPipelineType == null)
|
||||
{
|
||||
Debug.LogError("Type 'Unity.InstantGame.IGBuildPipeline' not found. ");
|
||||
return;
|
||||
}
|
||||
MethodInfo uploadMethod = igBuildPipelineType.GetMethod("UploadWeChatDataFile", BindingFlags.Public | BindingFlags.Static);
|
||||
|
||||
bool returnValue = false;
|
||||
if (uploadMethod != null)
|
||||
{
|
||||
object[] parameters = new object[] { FirstBundlePath };
|
||||
object result = uploadMethod.Invoke(null, parameters);
|
||||
returnValue = Convert.ToBoolean(result);
|
||||
}
|
||||
|
||||
if (returnValue)
|
||||
{
|
||||
Debug.Log("转换完成并成功上传首包资源");
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogError("首包资源上传失败,请检查网络以及Auto Streaming配置是否正确。");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogError("转换失败");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
#endif
|
||||
7
Editor/BuildProfile/WeixinMiniGameSettings.cs.meta
Normal file
7
Editor/BuildProfile/WeixinMiniGameSettings.cs.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 35f480205054085db3ceb2be04b7e97a
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
586
Editor/BuildProfile/WeixinMiniGameSettingsEditor.cs
Normal file
586
Editor/BuildProfile/WeixinMiniGameSettingsEditor.cs
Normal file
@ -0,0 +1,586 @@
|
||||
#if TUANJIE_1_4_OR_NEWER
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using UnityEditor;
|
||||
using UnityEditor.Build.Profile;
|
||||
using UnityEngine;
|
||||
using static WeChatWASM.WXConvertCore;
|
||||
|
||||
namespace WeChatWASM
|
||||
{
|
||||
public class WeixinMiniGameSettingsEditor : MiniGameSettingsEditor
|
||||
{
|
||||
private Vector2 scrollRoot;
|
||||
private bool foldBaseInfo = true;
|
||||
private bool foldLoadingConfig = true;
|
||||
private bool foldSDKOptions = true;
|
||||
private bool foldDebugOptions = true;
|
||||
|
||||
private bool foldInstantGame = false;
|
||||
|
||||
private bool foldFontOptions = false;
|
||||
private Dictionary<string, string> formInputData = new Dictionary<string, string>();
|
||||
private Dictionary<string, int> formIntPopupData = new Dictionary<string, int>();
|
||||
private Dictionary<string, bool> formCheckboxData = new Dictionary<string, bool>();
|
||||
public Texture tex;
|
||||
|
||||
public override void OnMiniGameSettingsIMGUI(SerializedObject serializedObject, SerializedProperty miniGameProperty)
|
||||
{
|
||||
OnSettingsGUI(serializedObject, miniGameProperty);
|
||||
}
|
||||
|
||||
public void OnSettingsGUI(SerializedObject serializedObject, SerializedProperty miniGameProperty)
|
||||
{
|
||||
loadData(serializedObject, miniGameProperty);
|
||||
|
||||
scrollRoot = EditorGUILayout.BeginScrollView(scrollRoot);
|
||||
|
||||
GUIStyle linkStyle = new GUIStyle(GUI.skin.label);
|
||||
linkStyle.normal.textColor = Color.yellow;
|
||||
linkStyle.hover.textColor = Color.yellow;
|
||||
linkStyle.stretchWidth = false;
|
||||
linkStyle.alignment = TextAnchor.UpperLeft;
|
||||
linkStyle.wordWrap = true;
|
||||
|
||||
foldBaseInfo = EditorGUILayout.Foldout(foldBaseInfo, "基本信息");
|
||||
if (foldBaseInfo)
|
||||
{
|
||||
EditorGUILayout.BeginVertical("frameBox", GUILayout.ExpandWidth(true));
|
||||
|
||||
formInput("appid", "游戏AppID");
|
||||
formInput("cdn", "游戏资源CDN");
|
||||
formInput("projectName", "小游戏项目名");
|
||||
formIntPopup("orientation", "游戏方向", new[] { "Portrait", "Landscape", "LandscapeLeft", "LandscapeRight" }, new[] { 0, 1, 2, 3 });
|
||||
formInput("memorySize", "UnityHeap预留内存(?)", "单位MB,预分配内存值,超休闲游戏256/中轻度496/重度游戏768,需预估游戏最大UnityHeap值以防止内存自动扩容带来的峰值尖刺。预估方法请查看GIT文档《优化Unity WebGL的内存》");
|
||||
|
||||
EditorGUILayout.EndVertical();
|
||||
}
|
||||
|
||||
foldLoadingConfig = EditorGUILayout.Foldout(foldLoadingConfig, "启动Loading配置");
|
||||
if (foldLoadingConfig)
|
||||
{
|
||||
EditorGUILayout.BeginVertical("frameBox", GUILayout.ExpandWidth(true));
|
||||
|
||||
GUILayout.BeginHorizontal();
|
||||
string targetBg = "bgImageSrc";
|
||||
EditorGUILayout.LabelField(string.Empty, GUILayout.Width(10));
|
||||
tex = (Texture)EditorGUILayout.ObjectField("启动背景图/视频封面", tex, typeof(Texture2D), false);
|
||||
var currentBgSrc = AssetDatabase.GetAssetPath(tex);
|
||||
if (!string.IsNullOrEmpty(currentBgSrc) && currentBgSrc != formInputData[targetBg])
|
||||
{
|
||||
formInputData[targetBg] = currentBgSrc;
|
||||
saveData(serializedObject, miniGameProperty);
|
||||
}
|
||||
GUILayout.EndHorizontal();
|
||||
|
||||
formInput("videoUrl", "加载阶段视频URL");
|
||||
formIntPopup("assetLoadType", "首包资源加载方式", new[] { "CDN", "小游戏包内" }, new[] { 0, 1 });
|
||||
formCheckbox("compressDataPackage", "压缩首包资源(?)", "将首包资源Brotli压缩, 降低资源大小. 注意: 首次启动耗时可能会增加200ms, 仅推荐使用小游戏分包加载时节省包体大小使用");
|
||||
formInput("bundleExcludeExtensions", "不自动缓存文件类型(?)", "(使用;分割)当请求url包含资源'cdn+StreamingAssets'时会自动缓存,但StreamingAssets目录下不是所有文件都需缓存,此选项配置不需要自动缓存的文件拓展名。默认值json");
|
||||
formInput("bundleHashLength", "Bundle名称Hash长度(?)", "自定义Bundle文件名中hash部分长度,默认值32,用于缓存控制。");
|
||||
formInput("preloadFiles", "预下载文件列表(?)", "使用;间隔,支持模糊匹配");
|
||||
|
||||
EditorGUILayout.EndVertical();
|
||||
}
|
||||
|
||||
foldSDKOptions = EditorGUILayout.Foldout(foldSDKOptions, "SDK功能选项");
|
||||
if (foldSDKOptions)
|
||||
{
|
||||
EditorGUILayout.BeginVertical("frameBox", GUILayout.ExpandWidth(true));
|
||||
|
||||
formCheckbox("useFriendRelation", "使用好友关系链");
|
||||
formCheckbox("useMiniGameChat", "使用社交组件");
|
||||
formCheckbox("preloadWXFont", "预加载微信字体(?)", "在game.js执行开始时预载微信系统字体,运行期间可使用WX.GetWXFont获取微信字体");
|
||||
formCheckbox("disableMultiTouch", "禁止多点触控");
|
||||
|
||||
EditorGUILayout.EndVertical();
|
||||
}
|
||||
|
||||
foldDebugOptions = EditorGUILayout.Foldout(foldDebugOptions, "调试编译选项");
|
||||
if (foldDebugOptions)
|
||||
{
|
||||
EditorGUILayout.BeginVertical("frameBox", GUILayout.ExpandWidth(true));
|
||||
// formCheckbox("developBuild", "Development Build");
|
||||
formCheckbox("autoProfile", "Auto connect Profiler");
|
||||
formCheckbox("scriptOnly", "Scripts Only Build");
|
||||
#if TUANJIE_2022_3_OR_NEWER
|
||||
// TODO: if overwrite by OverwritePlayerSettings
|
||||
bool UseIL2CPP = PlayerSettings.GetScriptingBackend(BuildTargetGroup.WeixinMiniGame) == ScriptingImplementation.IL2CPP;
|
||||
#else
|
||||
bool UseIL2CPP = true;
|
||||
#endif
|
||||
formCheckbox("il2CppOptimizeSize", "Il2Cpp Optimize Size(?)", "对应于Il2CppCodeGeneration选项,勾选时使用OptimizeSize(默认推荐),生成代码小15%左右,取消勾选则使用OptimizeSpeed。游戏中大量泛型集合的高频访问建议OptimizeSpeed,在使用HybridCLR等第三方组件时只能用OptimizeSpeed。(Dotnet Runtime模式下该选项无效)", !UseIL2CPP);
|
||||
formCheckbox("profilingFuncs", "Profiling Funcs");
|
||||
formCheckbox("profilingMemory", "Profiling Memory");
|
||||
|
||||
formCheckbox("webgl2", "WebGL2.0(beta)");
|
||||
formCheckbox("iOSPerformancePlus", "iOSPerformancePlus(?)", "是否使用iOS高性能+渲染方案,有助于提升渲染兼容性、降低WebContent进程内存");
|
||||
formCheckbox("EmscriptenGLX", "EmscriptenGLX(?)", "是否使用EmscriptenGLX渲染方案");
|
||||
formCheckbox("iOSMetal", "iOSMetal(?)", "是否使用iOSMetal渲染方案,需要开启iOS高性能+模式,有助于提升运行性能,降低iOS功耗");
|
||||
formCheckbox("deleteStreamingAssets", "Clear Streaming Assets");
|
||||
formCheckbox("cleanBuild", "Clean WebGL Build");
|
||||
// formCheckbox("cleanCloudDev", "Clean Cloud Dev");
|
||||
formCheckbox("fbslim", "首包资源优化(?)", "导出时自动清理UnityEditor默认打包但游戏项目从未使用的资源,瘦身首包资源体积。(团结引擎已无需开启该能力)", UnityUtil.GetEngineVersion() > 0, (res) =>
|
||||
{
|
||||
var fbWin = EditorWindow.GetWindow(typeof(WXFbSettingWindow), false, "首包资源优化配置面板", true);
|
||||
fbWin.minSize = new Vector2(680, 350);
|
||||
fbWin.Show();
|
||||
});
|
||||
formCheckbox("autoAdaptScreen", "自适应屏幕尺寸(?)", "移动端旋转屏幕和PC端拉伸窗口时,自动调整画布尺寸");
|
||||
formCheckbox("showMonitorSuggestModal", "显示优化建议弹窗");
|
||||
formCheckbox("enableProfileStats", "显示性能面板");
|
||||
formCheckbox("enableRenderAnalysis", "显示渲染日志(dev only)");
|
||||
|
||||
{
|
||||
formCheckbox("brotliMT", "brotli多线程压缩(?)", "开启多线程压缩可以提高出包速度,但会降低压缩率。如若不使用wasm代码分包请勿用多线程出包上线");
|
||||
}
|
||||
EditorGUILayout.EndVertical();
|
||||
}
|
||||
|
||||
if (WXConvertCore.IsInstantGameAutoStreaming())
|
||||
{
|
||||
foldInstantGame = EditorGUILayout.Foldout(foldInstantGame, "Instant Game - AutoStreaming");
|
||||
if (foldInstantGame)
|
||||
{
|
||||
var automaticfillinstantgame = miniGameProperty.FindPropertyRelative("m_AutomaticFillInstantGame");
|
||||
EditorGUILayout.BeginVertical("frameBox", GUILayout.ExpandWidth(true));
|
||||
GUILayout.BeginHorizontal();
|
||||
EditorGUILayout.LabelField(string.Empty, GUILayout.Width(10));
|
||||
formCheckbox("m_AutomaticFillInstantGame", "自动填写AutoStreaming", "仅在开启AutoStreaming生效");
|
||||
GUILayout.EndHorizontal();
|
||||
formInput("bundlePathIdentifier", "Bundle Path Identifier");
|
||||
formInput("dataFileSubPrefix", "Data File Sub Prefix");
|
||||
|
||||
EditorGUI.BeginDisabledGroup(true);
|
||||
formCheckbox("autoUploadFirstBundle", "构建后自动上传首包(?)", "仅在开启AutoStreaming生效", true);
|
||||
EditorGUI.EndDisabledGroup();
|
||||
|
||||
GUILayout.BeginHorizontal();
|
||||
EditorGUILayout.LabelField(string.Empty, GUILayout.Width(10));
|
||||
GUILayout.Label(new GUIContent("清理AS配置(?)", "如需关闭AutoStreaming选用默认发布方案则需要清理AS配置项目。"), GUILayout.Width(140));
|
||||
EditorGUI.BeginDisabledGroup(WXConvertCore.IsInstantGameAutoStreaming());
|
||||
if (GUILayout.Button(new GUIContent("恢复"), GUILayout.Width(60)))
|
||||
{
|
||||
var ProjectConf = miniGameProperty.FindPropertyRelative("ProjectConf");
|
||||
string identifier = ProjectConf.FindPropertyRelative("bundlePathIdentifier").stringValue;
|
||||
string[] identifiers = identifier.Split(";");
|
||||
string idStr = "";
|
||||
foreach (string id in identifiers)
|
||||
{
|
||||
if (id != "AS" && id != "CUS/CustomAB")
|
||||
{
|
||||
idStr += id + ";";
|
||||
}
|
||||
}
|
||||
ProjectConf.FindPropertyRelative("bundlePathIdentifier").stringValue = idStr.Trim(';');
|
||||
|
||||
if (ProjectConf.FindPropertyRelative("dataFileSubPrefix").stringValue == "CUS")
|
||||
{
|
||||
ProjectConf.FindPropertyRelative("dataFileSubPrefix").stringValue = "";
|
||||
}
|
||||
loadData(serializedObject, miniGameProperty);
|
||||
}
|
||||
EditorGUI.EndDisabledGroup();
|
||||
GUILayout.EndHorizontal();
|
||||
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
EditorGUILayout.LabelField(string.Empty);
|
||||
if (GUILayout.Button(new GUIContent("了解Instant Game AutoStreaming", ""), linkStyle))
|
||||
{
|
||||
Application.OpenURL("https://github.com/wechat-miniprogram/minigame-unity-webgl-transform/blob/main/Design/InstantGameGuide.md");
|
||||
}
|
||||
EditorGUILayout.EndHorizontal();
|
||||
EditorGUILayout.EndVertical();
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
foldFontOptions = EditorGUILayout.Foldout(foldFontOptions, "字体配置");
|
||||
if (foldFontOptions)
|
||||
{
|
||||
EditorGUILayout.BeginVertical("frameBox", GUILayout.ExpandWidth(true));
|
||||
formCheckbox("CJK_Unified_Ideographs", "基本汉字(?)", "Unicode [0x4e00, 0x9fff]");
|
||||
formCheckbox("C0_Controls_and_Basic_Latin", "基本拉丁语(英文大小写、数字、英文标点)(?)", "Unicode [0x0, 0x7f]");
|
||||
formCheckbox("CJK_Symbols_and_Punctuation", "中文标点符号(?)", "Unicode [0x3000, 0x303f]");
|
||||
formCheckbox("General_Punctuation", "通用标点符号(?)", "Unicode [0x2000, 0x206f]");
|
||||
formCheckbox("Enclosed_CJK_Letters_and_Months", "CJK字母及月份(?)", "Unicode [0x3200, 0x32ff]");
|
||||
formCheckbox("Vertical_Forms", "中文竖排标点(?)", "Unicode [0xfe10, 0xfe1f]");
|
||||
formCheckbox("CJK_Compatibility_Forms", "CJK兼容符号(?)", "Unicode [0xfe30, 0xfe4f]");
|
||||
formCheckbox("Miscellaneous_Symbols", "杂项符号(?)", "Unicode [0x2600, 0x26ff]");
|
||||
formCheckbox("CJK_Compatibility", "CJK特殊符号(?)", "Unicode [0x3300, 0x33ff]");
|
||||
formCheckbox("Halfwidth_and_Fullwidth_Forms", "全角ASCII、全角中英文标点、半宽片假名、半宽平假名、半宽韩文字母(?)", "Unicode [0xff00, 0xffef]");
|
||||
formCheckbox("Dingbats", "装饰符号(?)", "Unicode [0x2700, 0x27bf]");
|
||||
formCheckbox("Letterlike_Symbols", "字母式符号(?)", "Unicode [0x2100, 0x214f]");
|
||||
formCheckbox("Enclosed_Alphanumerics", "带圈或括号的字母数字(?)", "Unicode [0x2460, 0x24ff]");
|
||||
formCheckbox("Number_Forms", "数字形式(?)", "Unicode [0x2150, 0x218f]");
|
||||
formCheckbox("Currency_Symbols", "货币符号(?)", "Unicode [0x20a0, 0x20cf]");
|
||||
formCheckbox("Arrows", "箭头(?)", "Unicode [0x2190, 0x21ff]");
|
||||
formCheckbox("Geometric_Shapes", "几何图形(?)", "Unicode [0x25a0, 0x25ff]");
|
||||
formCheckbox("Mathematical_Operators", "数学运算符号(?)", "Unicode [0x2200, 0x22ff]");
|
||||
formInput("CustomUnicode", "自定义Unicode(?)", "将填入的所有字符强制加入字体预加载列表");
|
||||
EditorGUILayout.EndVertical();
|
||||
}
|
||||
}
|
||||
|
||||
EditorGUILayout.EndScrollView();
|
||||
saveData(serializedObject, miniGameProperty);
|
||||
}
|
||||
|
||||
private void loadData(SerializedObject serializedObject, SerializedProperty miniGameProperty)
|
||||
{
|
||||
serializedObject.UpdateIfRequiredOrScript();
|
||||
var ProjectConf = miniGameProperty.FindPropertyRelative("ProjectConf");
|
||||
|
||||
// Instant Game
|
||||
if (WXConvertCore.IsInstantGameAutoStreaming())
|
||||
{
|
||||
var automaticfillinstantgame = miniGameProperty.FindPropertyRelative("m_AutomaticFillInstantGame");
|
||||
if (automaticfillinstantgame.boolValue)
|
||||
{
|
||||
ProjectConf.FindPropertyRelative("CDN").stringValue = WXConvertCore.GetInstantGameAutoStreamingCDN();
|
||||
if (!ProjectConf.FindPropertyRelative("bundlePathIdentifier").stringValue.Contains("AS;"))
|
||||
{
|
||||
ProjectConf.FindPropertyRelative("bundlePathIdentifier").stringValue += "AS;";
|
||||
}
|
||||
if (!ProjectConf.FindPropertyRelative("bundlePathIdentifier").stringValue.Contains("CUS/CustomAB;"))
|
||||
{
|
||||
ProjectConf.FindPropertyRelative("bundlePathIdentifier").stringValue += "CUS/CustomAB;";
|
||||
}
|
||||
ProjectConf.FindPropertyRelative("dataFileSubPrefix").stringValue = "CUS";
|
||||
}
|
||||
}
|
||||
|
||||
setData("projectName", ProjectConf.FindPropertyRelative("projectName").stringValue);
|
||||
setData("appid", ProjectConf.FindPropertyRelative("Appid").stringValue);
|
||||
setData("cdn", ProjectConf.FindPropertyRelative("CDN").stringValue);
|
||||
setData("assetLoadType", ProjectConf.FindPropertyRelative("assetLoadType").intValue);
|
||||
setData("compressDataPackage", ProjectConf.FindPropertyRelative("compressDataPackage").boolValue);
|
||||
setData("videoUrl", ProjectConf.FindPropertyRelative("VideoUrl").stringValue);
|
||||
setData("orientation", (int)ProjectConf.FindPropertyRelative("Orientation").enumValueIndex);
|
||||
//setData("dst", ProjectConf.FindPropertyRelative("relativeDST").stringValue);
|
||||
setData("bundleHashLength", ProjectConf.FindPropertyRelative("bundleHashLength").intValue.ToString());
|
||||
setData("bundlePathIdentifier", ProjectConf.FindPropertyRelative("bundlePathIdentifier").stringValue);
|
||||
setData("bundleExcludeExtensions", ProjectConf.FindPropertyRelative("bundleExcludeExtensions").stringValue);
|
||||
setData("preloadFiles", ProjectConf.FindPropertyRelative("preloadFiles").stringValue);
|
||||
|
||||
var CompileOptions = miniGameProperty.FindPropertyRelative("CompileOptions");
|
||||
// setData("developBuild", CompileOptions.FindPropertyRelative("DevelopBuild").boolValue);
|
||||
setData("autoProfile", CompileOptions.FindPropertyRelative("AutoProfile").boolValue);
|
||||
setData("scriptOnly", CompileOptions.FindPropertyRelative("ScriptOnly").boolValue);
|
||||
setData("il2CppOptimizeSize", CompileOptions.FindPropertyRelative("Il2CppOptimizeSize").boolValue);
|
||||
setData("profilingFuncs", CompileOptions.FindPropertyRelative("profilingFuncs").boolValue);
|
||||
setData("profilingMemory", CompileOptions.FindPropertyRelative("ProfilingMemory").boolValue);
|
||||
setData("deleteStreamingAssets", CompileOptions.FindPropertyRelative("DeleteStreamingAssets").boolValue);
|
||||
setData("cleanBuild", CompileOptions.FindPropertyRelative("CleanBuild").boolValue);
|
||||
setData("customNodePath", CompileOptions.FindPropertyRelative("CustomNodePath").stringValue);
|
||||
setData("webgl2", CompileOptions.FindPropertyRelative("Webgl2").boolValue);
|
||||
setData("iOSPerformancePlus", CompileOptions.FindPropertyRelative("enableIOSPerformancePlus").boolValue);
|
||||
setData("iOSMetal", CompileOptions.FindPropertyRelative("enableiOSMetal").boolValue);
|
||||
setData("EmscriptenGLX", CompileOptions.FindPropertyRelative("enableEmscriptenGLX").boolValue);
|
||||
setData("fbslim", CompileOptions.FindPropertyRelative("fbslim").boolValue);
|
||||
|
||||
var SDKOptions = miniGameProperty.FindPropertyRelative("SDKOptions");
|
||||
setData("useFriendRelation", SDKOptions.FindPropertyRelative("UseFriendRelation").boolValue);
|
||||
setData("useMiniGameChat", SDKOptions.FindPropertyRelative("UseMiniGameChat").boolValue);
|
||||
setData("preloadWXFont", SDKOptions.FindPropertyRelative("PreloadWXFont").boolValue);
|
||||
setData("disableMultiTouch", SDKOptions.FindPropertyRelative("disableMultiTouch").boolValue);
|
||||
setData("bgImageSrc", ProjectConf.FindPropertyRelative("bgImageSrc").stringValue);
|
||||
tex = AssetDatabase.LoadAssetAtPath<Texture>(ProjectConf.FindPropertyRelative("bgImageSrc").stringValue);
|
||||
setData("memorySize", ProjectConf.FindPropertyRelative("MemorySize").intValue.ToString());
|
||||
setData("hideAfterCallMain", ProjectConf.FindPropertyRelative("HideAfterCallMain").boolValue);
|
||||
|
||||
setData("dataFileSubPrefix", ProjectConf.FindPropertyRelative("dataFileSubPrefix").stringValue);
|
||||
setData("maxStorage", ProjectConf.FindPropertyRelative("maxStorage").intValue.ToString());
|
||||
setData("defaultReleaseSize", ProjectConf.FindPropertyRelative("defaultReleaseSize").intValue.ToString());
|
||||
setData("texturesHashLength", ProjectConf.FindPropertyRelative("texturesHashLength").intValue.ToString());
|
||||
setData("texturesPath", ProjectConf.FindPropertyRelative("texturesPath").stringValue);
|
||||
setData("needCacheTextures", ProjectConf.FindPropertyRelative("needCacheTextures").boolValue);
|
||||
setData("loadingBarWidth", ProjectConf.FindPropertyRelative("loadingBarWidth").intValue.ToString());
|
||||
setData("needCheckUpdate", ProjectConf.FindPropertyRelative("needCheckUpdate").boolValue);
|
||||
setData("disableHighPerformanceFallback", ProjectConf.FindPropertyRelative("disableHighPerformanceFallback").boolValue);
|
||||
setData("autoAdaptScreen", CompileOptions.FindPropertyRelative("autoAdaptScreen").boolValue);
|
||||
setData("showMonitorSuggestModal", CompileOptions.FindPropertyRelative("showMonitorSuggestModal").boolValue);
|
||||
setData("enableProfileStats", CompileOptions.FindPropertyRelative("enableProfileStats").boolValue);
|
||||
setData("enableRenderAnalysis", CompileOptions.FindPropertyRelative("enableRenderAnalysis").boolValue);
|
||||
setData("brotliMT", CompileOptions.FindPropertyRelative("brotliMT").boolValue);
|
||||
setData("autoUploadFirstBundle", true);
|
||||
setData("m_AutomaticFillInstantGame", miniGameProperty.FindPropertyRelative("m_AutomaticFillInstantGame").boolValue);
|
||||
|
||||
// font options
|
||||
var FontOptions = miniGameProperty.FindPropertyRelative("FontOptions");
|
||||
setData("CJK_Unified_Ideographs", FontOptions.FindPropertyRelative("CJK_Unified_Ideographs").boolValue);
|
||||
setData("C0_Controls_and_Basic_Latin", FontOptions.FindPropertyRelative("C0_Controls_and_Basic_Latin").boolValue);
|
||||
setData("CJK_Symbols_and_Punctuation", FontOptions.FindPropertyRelative("CJK_Symbols_and_Punctuation").boolValue);
|
||||
setData("General_Punctuation", FontOptions.FindPropertyRelative("General_Punctuation").boolValue);
|
||||
setData("Enclosed_CJK_Letters_and_Months", FontOptions.FindPropertyRelative("Enclosed_CJK_Letters_and_Months").boolValue);
|
||||
setData("Vertical_Forms", FontOptions.FindPropertyRelative("Vertical_Forms").boolValue);
|
||||
setData("CJK_Compatibility_Forms", FontOptions.FindPropertyRelative("CJK_Compatibility_Forms").boolValue);
|
||||
setData("Miscellaneous_Symbols", FontOptions.FindPropertyRelative("Miscellaneous_Symbols").boolValue);
|
||||
setData("CJK_Compatibility", FontOptions.FindPropertyRelative("CJK_Compatibility").boolValue);
|
||||
setData("Halfwidth_and_Fullwidth_Forms", FontOptions.FindPropertyRelative("Halfwidth_and_Fullwidth_Forms").boolValue);
|
||||
setData("Dingbats", FontOptions.FindPropertyRelative("Dingbats").boolValue);
|
||||
setData("Letterlike_Symbols", FontOptions.FindPropertyRelative("Letterlike_Symbols").boolValue);
|
||||
setData("Enclosed_Alphanumerics", FontOptions.FindPropertyRelative("Enclosed_Alphanumerics").boolValue);
|
||||
setData("Number_Forms", FontOptions.FindPropertyRelative("Number_Forms").boolValue);
|
||||
setData("Currency_Symbols", FontOptions.FindPropertyRelative("Currency_Symbols").boolValue);
|
||||
setData("Arrows", FontOptions.FindPropertyRelative("Arrows").boolValue);
|
||||
setData("Geometric_Shapes", FontOptions.FindPropertyRelative("Geometric_Shapes").boolValue);
|
||||
setData("Mathematical_Operators", FontOptions.FindPropertyRelative("Mathematical_Operators").boolValue);
|
||||
setData("CustomUnicode", FontOptions.FindPropertyRelative("CustomUnicode").stringValue);
|
||||
}
|
||||
|
||||
private void saveData(SerializedObject serializedObject, SerializedProperty miniGameProperty)
|
||||
{
|
||||
serializedObject.UpdateIfRequiredOrScript();
|
||||
|
||||
var ProjectConf = miniGameProperty.FindPropertyRelative("ProjectConf");
|
||||
ProjectConf.FindPropertyRelative("projectName").stringValue = getDataInput("projectName");
|
||||
ProjectConf.FindPropertyRelative("Appid").stringValue = getDataInput("appid");
|
||||
ProjectConf.FindPropertyRelative("CDN").stringValue = getDataInput("cdn");
|
||||
ProjectConf.FindPropertyRelative("assetLoadType").intValue = getDataPop("assetLoadType");
|
||||
ProjectConf.FindPropertyRelative("compressDataPackage").boolValue = getDataCheckbox("compressDataPackage");
|
||||
ProjectConf.FindPropertyRelative("VideoUrl").stringValue = getDataInput("videoUrl");
|
||||
ProjectConf.FindPropertyRelative("Orientation").enumValueIndex = getDataPop("orientation");
|
||||
ProjectConf.FindPropertyRelative("relativeDST").stringValue = serializedObject.FindProperty("m_BuildPath").stringValue;
|
||||
ProjectConf.FindPropertyRelative("DST").stringValue = GetAbsolutePath(config.ProjectConf.relativeDST);
|
||||
|
||||
ProjectConf.FindPropertyRelative("bundleHashLength").intValue = int.Parse(getDataInput("bundleHashLength"));
|
||||
ProjectConf.FindPropertyRelative("bundlePathIdentifier").stringValue = getDataInput("bundlePathIdentifier");
|
||||
ProjectConf.FindPropertyRelative("bundleExcludeExtensions").stringValue = getDataInput("bundleExcludeExtensions");
|
||||
ProjectConf.FindPropertyRelative("preloadFiles").stringValue = getDataInput("preloadFiles");
|
||||
|
||||
var CompileOptions = miniGameProperty.FindPropertyRelative("CompileOptions");
|
||||
|
||||
CompileOptions.FindPropertyRelative("DevelopBuild").boolValue = serializedObject.FindProperty("m_PlatformSettings").FindPropertyRelative("m_Development").boolValue;
|
||||
CompileOptions.FindPropertyRelative("AutoProfile").boolValue = getDataCheckbox("autoProfile");
|
||||
CompileOptions.FindPropertyRelative("ScriptOnly").boolValue = getDataCheckbox("scriptOnly");
|
||||
CompileOptions.FindPropertyRelative("Il2CppOptimizeSize").boolValue = getDataCheckbox("il2CppOptimizeSize");
|
||||
CompileOptions.FindPropertyRelative("profilingFuncs").boolValue = getDataCheckbox("profilingFuncs");
|
||||
CompileOptions.FindPropertyRelative("ProfilingMemory").boolValue = getDataCheckbox("profilingMemory");
|
||||
CompileOptions.FindPropertyRelative("DeleteStreamingAssets").boolValue = getDataCheckbox("deleteStreamingAssets");
|
||||
CompileOptions.FindPropertyRelative("CleanBuild").boolValue = getDataCheckbox("cleanBuild");
|
||||
CompileOptions.FindPropertyRelative("CustomNodePath").stringValue = getDataInput("customNodePath");
|
||||
CompileOptions.FindPropertyRelative("Webgl2").boolValue = getDataCheckbox("webgl2");
|
||||
CompileOptions.FindPropertyRelative("enableIOSPerformancePlus").boolValue = getDataCheckbox("iOSPerformancePlus");
|
||||
CompileOptions.FindPropertyRelative("enableiOSMetal").boolValue = getDataCheckbox("iOSMetal");
|
||||
CompileOptions.FindPropertyRelative("enableEmscriptenGLX").boolValue = getDataCheckbox("EmscriptenGLX");
|
||||
CompileOptions.FindPropertyRelative("fbslim").boolValue = getDataCheckbox("fbslim");
|
||||
|
||||
var SDKOptions = miniGameProperty.FindPropertyRelative("SDKOptions");
|
||||
SDKOptions.FindPropertyRelative("UseFriendRelation").boolValue = getDataCheckbox("useFriendRelation");
|
||||
SDKOptions.FindPropertyRelative("UseMiniGameChat").boolValue = getDataCheckbox("useMiniGameChat");
|
||||
SDKOptions.FindPropertyRelative("PreloadWXFont").boolValue = getDataCheckbox("preloadWXFont");
|
||||
SDKOptions.FindPropertyRelative("disableMultiTouch").boolValue = getDataCheckbox("disableMultiTouch");
|
||||
ProjectConf.FindPropertyRelative("bgImageSrc").stringValue = getDataInput("bgImageSrc");
|
||||
ProjectConf.FindPropertyRelative("MemorySize").intValue = int.Parse(getDataInput("memorySize"));
|
||||
ProjectConf.FindPropertyRelative("HideAfterCallMain").boolValue = getDataCheckbox("hideAfterCallMain");
|
||||
ProjectConf.FindPropertyRelative("dataFileSubPrefix").stringValue = getDataInput("dataFileSubPrefix");
|
||||
ProjectConf.FindPropertyRelative("maxStorage").intValue = int.Parse(getDataInput("maxStorage"));
|
||||
ProjectConf.FindPropertyRelative("defaultReleaseSize").intValue = int.Parse(getDataInput("defaultReleaseSize"));
|
||||
ProjectConf.FindPropertyRelative("texturesHashLength").intValue = int.Parse(getDataInput("texturesHashLength"));
|
||||
ProjectConf.FindPropertyRelative("texturesPath").stringValue = getDataInput("texturesPath");
|
||||
ProjectConf.FindPropertyRelative("needCacheTextures").boolValue = getDataCheckbox("needCacheTextures");
|
||||
ProjectConf.FindPropertyRelative("loadingBarWidth").intValue = int.Parse(getDataInput("loadingBarWidth"));
|
||||
ProjectConf.FindPropertyRelative("needCheckUpdate").boolValue = getDataCheckbox("needCheckUpdate");
|
||||
ProjectConf.FindPropertyRelative("disableHighPerformanceFallback").boolValue = getDataCheckbox("disableHighPerformanceFallback");
|
||||
CompileOptions.FindPropertyRelative("autoAdaptScreen").boolValue = getDataCheckbox("autoAdaptScreen");
|
||||
CompileOptions.FindPropertyRelative("showMonitorSuggestModal").boolValue = getDataCheckbox("showMonitorSuggestModal");
|
||||
CompileOptions.FindPropertyRelative("enableProfileStats").boolValue = getDataCheckbox("enableProfileStats");
|
||||
CompileOptions.FindPropertyRelative("enableRenderAnalysis").boolValue = getDataCheckbox("enableRenderAnalysis");
|
||||
CompileOptions.FindPropertyRelative("brotliMT").boolValue = getDataCheckbox("brotliMT");
|
||||
|
||||
// font options
|
||||
var FontOptions = miniGameProperty.FindPropertyRelative("FontOptions");
|
||||
FontOptions.FindPropertyRelative("CJK_Unified_Ideographs").boolValue = getDataCheckbox("CJK_Unified_Ideographs");
|
||||
FontOptions.FindPropertyRelative("C0_Controls_and_Basic_Latin").boolValue = getDataCheckbox("C0_Controls_and_Basic_Latin");
|
||||
FontOptions.FindPropertyRelative("CJK_Symbols_and_Punctuation").boolValue = getDataCheckbox("CJK_Symbols_and_Punctuation");
|
||||
FontOptions.FindPropertyRelative("General_Punctuation").boolValue = getDataCheckbox("General_Punctuation");
|
||||
FontOptions.FindPropertyRelative("Enclosed_CJK_Letters_and_Months").boolValue = getDataCheckbox("Enclosed_CJK_Letters_and_Months");
|
||||
FontOptions.FindPropertyRelative("Vertical_Forms").boolValue = getDataCheckbox("Vertical_Forms");
|
||||
FontOptions.FindPropertyRelative("CJK_Compatibility_Forms").boolValue = getDataCheckbox("CJK_Compatibility_Forms");
|
||||
FontOptions.FindPropertyRelative("Miscellaneous_Symbols").boolValue = getDataCheckbox("Miscellaneous_Symbols");
|
||||
FontOptions.FindPropertyRelative("CJK_Compatibility").boolValue = getDataCheckbox("CJK_Compatibility");
|
||||
FontOptions.FindPropertyRelative("Halfwidth_and_Fullwidth_Forms").boolValue = getDataCheckbox("Halfwidth_and_Fullwidth_Forms");
|
||||
FontOptions.FindPropertyRelative("Dingbats").boolValue = getDataCheckbox("Dingbats");
|
||||
FontOptions.FindPropertyRelative("Letterlike_Symbols").boolValue = getDataCheckbox("Letterlike_Symbols");
|
||||
FontOptions.FindPropertyRelative("Enclosed_Alphanumerics").boolValue = getDataCheckbox("Enclosed_Alphanumerics");
|
||||
FontOptions.FindPropertyRelative("Number_Forms").boolValue = getDataCheckbox("Number_Forms");
|
||||
FontOptions.FindPropertyRelative("Currency_Symbols").boolValue = getDataCheckbox("Currency_Symbols");
|
||||
FontOptions.FindPropertyRelative("Arrows").boolValue = getDataCheckbox("Arrows");
|
||||
FontOptions.FindPropertyRelative("Geometric_Shapes").boolValue = getDataCheckbox("Geometric_Shapes");
|
||||
FontOptions.FindPropertyRelative("Mathematical_Operators").boolValue = getDataCheckbox("Mathematical_Operators");
|
||||
FontOptions.FindPropertyRelative("CustomUnicode").stringValue = getDataInput("CustomUnicode");
|
||||
FontOptions.FindPropertyRelative("Arrows").boolValue = getDataCheckbox("Arrows");
|
||||
FontOptions.FindPropertyRelative("Geometric_Shapes").boolValue = getDataCheckbox("Geometric_Shapes");
|
||||
FontOptions.FindPropertyRelative("Mathematical_Operators").boolValue = getDataCheckbox("Mathematical_Operators");
|
||||
FontOptions.FindPropertyRelative("CustomUnicode").stringValue = getDataInput("CustomUnicode");
|
||||
|
||||
miniGameProperty.FindPropertyRelative("m_AutomaticFillInstantGame").boolValue = getDataCheckbox("m_AutomaticFillInstantGame");
|
||||
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
}
|
||||
|
||||
private bool getDataCheckbox(string target)
|
||||
{
|
||||
if (formCheckboxData.ContainsKey(target))
|
||||
return formCheckboxData[target];
|
||||
return false;
|
||||
}
|
||||
|
||||
private string getDataInput(string target)
|
||||
{
|
||||
if (formInputData.ContainsKey(target))
|
||||
return formInputData[target];
|
||||
return "";
|
||||
}
|
||||
|
||||
private int getDataPop(string target)
|
||||
{
|
||||
if (formIntPopupData.ContainsKey(target))
|
||||
return formIntPopupData[target];
|
||||
return 0;
|
||||
}
|
||||
|
||||
private void setData(string target, string value)
|
||||
{
|
||||
if (formInputData.ContainsKey(target))
|
||||
{
|
||||
formInputData[target] = value;
|
||||
}
|
||||
else
|
||||
{
|
||||
formInputData.Add(target, value);
|
||||
}
|
||||
}
|
||||
|
||||
private void setData(string target, bool value)
|
||||
{
|
||||
if (formCheckboxData.ContainsKey(target))
|
||||
{
|
||||
formCheckboxData[target] = value;
|
||||
}
|
||||
else
|
||||
{
|
||||
formCheckboxData.Add(target, value);
|
||||
}
|
||||
}
|
||||
|
||||
private void setData(string target, int value)
|
||||
{
|
||||
if (formIntPopupData.ContainsKey(target))
|
||||
{
|
||||
formIntPopupData[target] = value;
|
||||
}
|
||||
else
|
||||
{
|
||||
formIntPopupData.Add(target, value);
|
||||
}
|
||||
}
|
||||
|
||||
private void formInput(string target, string label, string help = null)
|
||||
{
|
||||
if (!formInputData.ContainsKey(target))
|
||||
{
|
||||
formInputData[target] = "";
|
||||
}
|
||||
GUILayout.BeginHorizontal();
|
||||
EditorGUILayout.LabelField(string.Empty, GUILayout.Width(10));
|
||||
if (help == null)
|
||||
{
|
||||
GUILayout.Label(label, GUILayout.Width(140));
|
||||
}
|
||||
else
|
||||
{
|
||||
GUILayout.Label(new GUIContent(label, help), GUILayout.Width(140));
|
||||
}
|
||||
formInputData[target] = GUILayout.TextField(formInputData[target], GUILayout.MaxWidth(EditorGUIUtility.currentViewWidth - 195));
|
||||
GUILayout.EndHorizontal();
|
||||
}
|
||||
|
||||
private void formCheckbox(string target, string label, string help = null, bool disable = false, Action<bool> setting = null)
|
||||
{
|
||||
if (!formCheckboxData.ContainsKey(target))
|
||||
{
|
||||
formCheckboxData[target] = false;
|
||||
}
|
||||
GUILayout.BeginHorizontal();
|
||||
EditorGUILayout.LabelField(string.Empty, GUILayout.Width(10));
|
||||
if (help == null)
|
||||
{
|
||||
GUILayout.Label(label, GUILayout.Width(140));
|
||||
}
|
||||
else
|
||||
{
|
||||
GUILayout.Label(new GUIContent(label, help), GUILayout.Width(140));
|
||||
}
|
||||
EditorGUI.BeginDisabledGroup(disable);
|
||||
formCheckboxData[target] = EditorGUILayout.Toggle(disable ? false : formCheckboxData[target]);
|
||||
|
||||
if (setting != null)
|
||||
{
|
||||
EditorGUILayout.LabelField("", GUILayout.Width(10));
|
||||
// <20><><EFBFBD>ð<EFBFBD>ť
|
||||
if (GUILayout.Button(new GUIContent("<22><><EFBFBD><EFBFBD>"), GUILayout.Width(40), GUILayout.Height(18)))
|
||||
{
|
||||
setting?.Invoke(true);
|
||||
}
|
||||
EditorGUILayout.LabelField("", GUILayout.MinWidth(10));
|
||||
}
|
||||
|
||||
EditorGUI.EndDisabledGroup();
|
||||
|
||||
if (setting == null)
|
||||
EditorGUILayout.LabelField(string.Empty);
|
||||
GUILayout.EndHorizontal();
|
||||
}
|
||||
|
||||
private void formIntPopup(string target, string label, string[] options, int[] values)
|
||||
{
|
||||
if (!formIntPopupData.ContainsKey(target))
|
||||
{
|
||||
formIntPopupData[target] = 0;
|
||||
}
|
||||
GUILayout.BeginHorizontal();
|
||||
EditorGUILayout.LabelField(string.Empty, GUILayout.Width(10));
|
||||
GUILayout.Label(label, GUILayout.Width(140));
|
||||
formIntPopupData[target] = EditorGUILayout.IntPopup(formIntPopupData[target], options, values, GUILayout.MaxWidth(EditorGUIUtility.currentViewWidth - 195));
|
||||
GUILayout.EndHorizontal();
|
||||
}
|
||||
|
||||
public static bool IsAbsolutePath(string path)
|
||||
{
|
||||
// 检查是否为空或空白
|
||||
if (string.IsNullOrWhiteSpace(path))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// 在 Windows 上,检查驱动器字母或网络路径
|
||||
if (Application.platform == RuntimePlatform.WindowsEditor && Path.IsPathRooted(path))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// 在 Unix/Linux 和 macOS 上,检查是否以 '/' 开头
|
||||
if (Application.platform == RuntimePlatform.OSXEditor && path.StartsWith("/"))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false; // 否则为相对路径
|
||||
}
|
||||
|
||||
public static string GetAbsolutePath(string path)
|
||||
{
|
||||
if (IsAbsolutePath(path))
|
||||
{
|
||||
return path;
|
||||
}
|
||||
string projectRootPath = System.IO.Path.GetFullPath(Application.dataPath + "/../");
|
||||
return Path.Combine(projectRootPath, path);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
7
Editor/BuildProfile/WeixinMiniGameSettingsEditor.cs.meta
Normal file
7
Editor/BuildProfile/WeixinMiniGameSettingsEditor.cs.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: df4d545d2ba5ed176543212d06fd4afd
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
183
Editor/BuildProfile/WeixinSubplatformInterface.cs
Normal file
183
Editor/BuildProfile/WeixinSubplatformInterface.cs
Normal file
@ -0,0 +1,183 @@
|
||||
#if TUANJIE_1_4_OR_NEWER
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using UnityEditor;
|
||||
using UnityEditor.Build.Profile;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering;
|
||||
|
||||
|
||||
namespace WeChatWASM
|
||||
{
|
||||
[InitializeOnLoad]
|
||||
public static class WeixinSubTargetManager
|
||||
{
|
||||
static WeixinSubTargetManager()
|
||||
{
|
||||
MiniGameSubplatformManager.RegisterSubplatform(new WeixinSubplatformInterface());
|
||||
}
|
||||
}
|
||||
|
||||
public class WeixinSubplatformInterface : MiniGameSubplatformInterface
|
||||
{
|
||||
class CacheConfig
|
||||
{
|
||||
public WXProjectConf ProjectConf;
|
||||
public SDKOptions SDKOptions;
|
||||
public CompileOptions CompileOptions;
|
||||
public CompressTexture CompressTexture;
|
||||
public List<string> PlayerPrefsKeys = new List<string>();
|
||||
public FontOptions FontOptions;
|
||||
}
|
||||
|
||||
private CacheConfig cacheConfig = new CacheConfig();
|
||||
|
||||
public override string GetSubplatformName()
|
||||
{
|
||||
return "WeChat:微信小游戏";
|
||||
}
|
||||
|
||||
public override MiniGameSettings GetSubplatformSettings()
|
||||
{
|
||||
return new WeixinMiniGameSettings(new WeixinMiniGameSettingsEditor());
|
||||
}
|
||||
|
||||
public override BuildMiniGameError Build(BuildProfile buildProfile)
|
||||
{
|
||||
// Useless
|
||||
return BuildMiniGameError.InvalidInput;
|
||||
}
|
||||
|
||||
public override BuildMiniGameError Build(BuildProfile buildProfile, BuildOptions options)
|
||||
{
|
||||
|
||||
var bcLibPath = Path.GetFullPath(Path.Combine("Packages", "com.qq.weixin.minigame", "Editor", "BuildProfile", "lib", "libwx-metal-cpp.bc"));
|
||||
var jsLibPath = Path.GetFullPath(Path.Combine("Packages", "com.qq.weixin.minigame", "Editor", "BuildProfile", "lib", "mtl_library.jslib"));
|
||||
string libPath = bcLibPath + ';' + jsLibPath;
|
||||
EditorUtility.SetMiniGameGfxLibraryPath(libPath);
|
||||
|
||||
WeixinMiniGameSettings settings = buildProfile.miniGameSettings as WeixinMiniGameSettings;
|
||||
|
||||
BuildMiniGameError buildMiniGameError = BuildMiniGameError.Unknown;
|
||||
bool preprocessSuccess = WechatBuildPreprocess(buildProfile);
|
||||
if (!preprocessSuccess)
|
||||
{
|
||||
return BuildMiniGameError.InvalidInput;
|
||||
}
|
||||
|
||||
if (settings is not null)
|
||||
{
|
||||
settings.FillAutoStreamingAutomatically();
|
||||
if (settings.PreprocessBuild(buildProfile, options))
|
||||
{
|
||||
|
||||
var error = CallDoExport(buildProfile);
|
||||
int enumIntValue = Convert.ToInt32(error);
|
||||
switch (enumIntValue)
|
||||
{
|
||||
case 0: // SUCCEED
|
||||
{
|
||||
WeixinMiniGameSettings.AutoStreamingLoad();
|
||||
buildMiniGameError = BuildMiniGameError.Succeeded;
|
||||
break;
|
||||
}
|
||||
case 2: // BUILD_WEBGL_FAILED
|
||||
{
|
||||
buildMiniGameError = BuildMiniGameError.PlayerBuildFailed;
|
||||
break;
|
||||
}
|
||||
case 1: // NODE_NOT_FOUND
|
||||
default:
|
||||
{
|
||||
buildMiniGameError = BuildMiniGameError.Unknown;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
BuildPostProcess(buildProfile);
|
||||
return buildMiniGameError;
|
||||
}
|
||||
|
||||
private bool WechatBuildPreprocess(BuildProfile buildProfile)
|
||||
{
|
||||
// Check GFX API and Color Space
|
||||
if (buildProfile != null)
|
||||
{
|
||||
PlayerSettings playerSettings = buildProfile.playerSettings;
|
||||
// Global PlayerSettings
|
||||
ColorSpace colorSpace = PlayerSettings.colorSpace;
|
||||
GraphicsDeviceType[] apis = PlayerSettings.GetGraphicsAPIs(buildProfile.buildTarget);
|
||||
bool isAutomatic = PlayerSettings.GetUseDefaultGraphicsAPIs(buildProfile.buildTarget);
|
||||
|
||||
if (playerSettings != null)
|
||||
{
|
||||
// BuildProfile PlayerSettings Override
|
||||
colorSpace = PlayerSettings.GetColorSpace_Internal(playerSettings);
|
||||
apis = PlayerSettings.GetGraphicsAPIs_Internal(playerSettings, buildProfile.buildTarget);
|
||||
isAutomatic = PlayerSettings.GetUseDefaultGraphicsAPIs_Internal(playerSettings, buildProfile.buildTarget);
|
||||
|
||||
// set override templatePath
|
||||
var absolutePath = Path.GetFullPath(Path.Combine("Packages", "com.qq.weixin.minigame", "WebGLTemplates/WXTemplate2022TJ"));
|
||||
if (!Directory.Exists(absolutePath))
|
||||
absolutePath = Path.GetFullPath(Path.Combine(Application.dataPath, "WebGLTemplates/WXTemplate2022TJ"));
|
||||
|
||||
if (Directory.Exists(absolutePath))
|
||||
PlayerSettings.MiniGame.SetTemplatePath_Internal(playerSettings, $"PATH:{absolutePath}");
|
||||
|
||||
PlayerSettings.MiniGame.SetThreadsSupport_Internal(playerSettings, false);
|
||||
PlayerSettings.MiniGame.SetCompressionFormat_Internal(playerSettings, MiniGameCompressionFormat.Disabled);
|
||||
PlayerSettings.MiniGame.SetLinkerTarget_Internal(playerSettings, MiniGameLinkerTarget.Wasm);
|
||||
PlayerSettings.MiniGame.SetDataCaching_Internal(playerSettings, false);
|
||||
PlayerSettings.MiniGame.SetDebugSymbolMode_Internal(playerSettings, MiniGameDebugSymbolMode.External);
|
||||
PlayerSettings.SetRunInBackground_Internal(playerSettings, false);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new InvalidOperationException("Build profile has not been initialized.");
|
||||
}
|
||||
}
|
||||
|
||||
private WXConvertCore.WXExportError CallDoExport(BuildProfile buildProfile)
|
||||
{
|
||||
WXEditorScriptObject config = UnityUtil.GetEditorConf();
|
||||
cacheConfig.ProjectConf = config.ProjectConf;
|
||||
cacheConfig.SDKOptions = config.SDKOptions;
|
||||
cacheConfig.CompileOptions = config.CompileOptions;
|
||||
cacheConfig.CompressTexture = config.CompressTexture;
|
||||
cacheConfig.PlayerPrefsKeys = config.PlayerPrefsKeys;
|
||||
cacheConfig.FontOptions = config.FontOptions;
|
||||
|
||||
WeixinMiniGameSettings weixinSettings = buildProfile.miniGameSettings as WeixinMiniGameSettings;
|
||||
config.ProjectConf = weixinSettings.ProjectConf;
|
||||
config.SDKOptions = weixinSettings.SDKOptions;
|
||||
config.CompileOptions = weixinSettings.CompileOptions;
|
||||
config.CompressTexture = weixinSettings.CompressTexture;
|
||||
config.PlayerPrefsKeys = weixinSettings.PlayerPrefsKeys;
|
||||
config.FontOptions = weixinSettings.FontOptions;
|
||||
EditorUtility.SetDirty(config);
|
||||
AssetDatabase.SaveAssets();
|
||||
return WXConvertCore.DoExport();
|
||||
}
|
||||
|
||||
private void BuildPostProcess(BuildProfile buildProfile)
|
||||
{
|
||||
// Restore the original settings
|
||||
WXEditorScriptObject config = UnityUtil.GetEditorConf();
|
||||
config.ProjectConf = cacheConfig.ProjectConf;
|
||||
config.SDKOptions = cacheConfig.SDKOptions;
|
||||
config.CompileOptions = cacheConfig.CompileOptions;
|
||||
config.CompressTexture = cacheConfig.CompressTexture;
|
||||
config.PlayerPrefsKeys = cacheConfig.PlayerPrefsKeys;
|
||||
config.FontOptions = cacheConfig.FontOptions;
|
||||
EditorUtility.SetDirty(config);
|
||||
AssetDatabase.SaveAssets();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
#endif
|
||||
7
Editor/BuildProfile/WeixinSubplatformInterface.cs.meta
Normal file
7
Editor/BuildProfile/WeixinSubplatformInterface.cs.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0b4df61ea34a9bc4c89a8e8b93455bd6
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@ -221,6 +221,9 @@ namespace WeChatWASM
|
||||
{
|
||||
var rootPath = Directory.GetParent(Application.dataPath).FullName;
|
||||
string webglDir = WXExtEnvDef.GETDEF("WEIXINMINIGAME") ? "WeixinMiniGame" : "WebGL";
|
||||
#if PLATFORM_PLAYABLEADS
|
||||
webglDir = "PlayableAds";
|
||||
#endif
|
||||
symFile1 = Path.Combine(rootPath, "Library", "Bee", "artifacts", webglDir, "build", "debug_WebGL_wasm", "build.js.symbols");
|
||||
}
|
||||
WeChatWASM.UnityUtil.preprocessSymbols(symFile1, GetWebGLSymbolPath());
|
||||
@ -346,7 +349,9 @@ namespace WeChatWASM
|
||||
{
|
||||
// WxPerfJsBridge.jslib
|
||||
var wxPerfJSBridgeImporter = AssetImporter.GetAtPath(wxPerfPlugins[0]) as PluginImporter;
|
||||
#if PLATFORM_WEIXINMINIGAME
|
||||
#if PLATFORM_PLAYABLEADS
|
||||
wxPerfJSBridgeImporter.SetCompatibleWithPlatform(BuildTarget.PlayableAds, config.CompileOptions.enablePerfAnalysis);
|
||||
#elif PLATFORM_WEIXINMINIGAME
|
||||
wxPerfJSBridgeImporter.SetCompatibleWithPlatform(BuildTarget.WeixinMiniGame, config.CompileOptions.enablePerfAnalysis);
|
||||
#else
|
||||
wxPerfJSBridgeImporter.SetCompatibleWithPlatform(BuildTarget.WebGL, config.CompileOptions.enablePerfAnalysis);
|
||||
@ -359,7 +364,10 @@ namespace WeChatWASM
|
||||
bool bShouldEnablePerf2022Plugin = config.CompileOptions.enablePerfAnalysis && IsCompatibleWithUnity202203OrNewer();
|
||||
|
||||
var wxPerf2022Importer = AssetImporter.GetAtPath(wxPerfPlugins[1]) as PluginImporter;
|
||||
#if PLATFORM_WEIXINMINIGAME
|
||||
|
||||
#if PLATFORM_PLAYABLEADS
|
||||
wxPerf2022Importer.SetCompatibleWithPlatform(BuildTarget.PlayableAds, bShouldEnablePerf2022Plugin);
|
||||
#elif PLATFORM_WEIXINMINIGAME
|
||||
wxPerf2022Importer.SetCompatibleWithPlatform(BuildTarget.WeixinMiniGame, bShouldEnablePerf2022Plugin);
|
||||
#else
|
||||
wxPerf2022Importer.SetCompatibleWithPlatform(BuildTarget.WebGL, bShouldEnablePerf2022Plugin);
|
||||
@ -372,7 +380,9 @@ namespace WeChatWASM
|
||||
bool bShouldEnablePerf2021Plugin = config.CompileOptions.enablePerfAnalysis && IsCompatibleWithUnity202102To202203();
|
||||
|
||||
var wxPerf2021Importer = AssetImporter.GetAtPath(wxPerfPlugins[2]) as PluginImporter;
|
||||
#if PLATFORM_WEIXINMINIGAME
|
||||
#if PLATFORM_PLAYABLEADS
|
||||
wxPerf2021Importer.SetCompatibleWithPlatform(BuildTarget.PlayableAds, bShouldEnablePerf2021Plugin);
|
||||
#elif PLATFORM_WEIXINMINIGAME
|
||||
wxPerf2021Importer.SetCompatibleWithPlatform(BuildTarget.WeixinMiniGame, bShouldEnablePerf2021Plugin);
|
||||
#else
|
||||
wxPerf2021Importer.SetCompatibleWithPlatform(BuildTarget.WebGL, bShouldEnablePerf2021Plugin);
|
||||
@ -572,7 +582,9 @@ namespace WeChatWASM
|
||||
Debug.LogError("Lua Adaptor Importer Not Found: " + maybeBuildFile);
|
||||
continue;
|
||||
}
|
||||
#if PLATFORM_WEIXINMINIGAME
|
||||
#if PLATFORM_PLAYABLEADS
|
||||
wxPerfJSBridgeImporter.SetCompatibleWithPlatform(BuildTarget.PlayableAds, shouldBuild);
|
||||
#elif PLATFORM_WEIXINMINIGAME
|
||||
wxPerfJSBridgeImporter.SetCompatibleWithPlatform(BuildTarget.WeixinMiniGame, shouldBuild);
|
||||
#else
|
||||
wxPerfJSBridgeImporter.SetCompatibleWithPlatform(BuildTarget.WebGL, shouldBuild);
|
||||
@ -622,7 +634,12 @@ namespace WeChatWASM
|
||||
else
|
||||
{
|
||||
#if TUANJIE_2022_3_OR_NEWER
|
||||
EditorUserBuildSettings.SwitchActiveBuildTarget(BuildTargetGroup.WeixinMiniGame, BuildTarget.WeixinMiniGame);
|
||||
if(EditorUserBuildSettings.activeBuildTarget != BuildTarget.WeixinMiniGame
|
||||
#if PLATFORM_PLAYABLEADS
|
||||
&& EditorUserBuildSettings.activeBuildTarget != BuildTarget.PlayableAds
|
||||
#endif
|
||||
)
|
||||
EditorUserBuildSettings.SwitchActiveBuildTarget(BuildTargetGroup.WeixinMiniGame, BuildTarget.WeixinMiniGame);
|
||||
#endif
|
||||
}
|
||||
Emit(LifeCycle.afterSwitchActiveBuildTarget);
|
||||
@ -1095,7 +1112,11 @@ namespace WeChatWASM
|
||||
}
|
||||
#endif
|
||||
#if TUANJIE_2022_3_OR_NEWER
|
||||
if (EditorUserBuildSettings.activeBuildTarget != BuildTarget.WeixinMiniGame)
|
||||
if (EditorUserBuildSettings.activeBuildTarget != BuildTarget.WeixinMiniGame
|
||||
#if PLATFORM_PLAYABLEADS
|
||||
&& EditorUserBuildSettings.activeBuildTarget != BuildTarget.PlayableAds
|
||||
#endif
|
||||
)
|
||||
{
|
||||
UnityEngine.Debug.LogFormat("[Builder] Current target is: {0}, switching to: {1}", EditorUserBuildSettings.activeBuildTarget, BuildTarget.WeixinMiniGame);
|
||||
if (!EditorUserBuildSettings.SwitchActiveBuildTarget(BuildTargetGroup.WeixinMiniGame, BuildTarget.WeixinMiniGame))
|
||||
@ -1106,8 +1127,11 @@ namespace WeChatWASM
|
||||
}
|
||||
|
||||
var projDir = Path.Combine(config.ProjectConf.DST, webglDir);
|
||||
|
||||
#if PLATFORM_PLAYABLEADS
|
||||
var result = BuildPipeline.BuildPlayer(GetScenePaths(), projDir, BuildTarget.PlayableAds, option);
|
||||
#else
|
||||
var result = BuildPipeline.BuildPlayer(GetScenePaths(), projDir, BuildTarget.WeixinMiniGame, option);
|
||||
#endif
|
||||
if (result.summary.result != UnityEditor.Build.Reporting.BuildResult.Succeeded)
|
||||
{
|
||||
UnityEngine.Debug.LogFormat("[Builder] BuildPlayer failed. emscriptenArgs:{0}", PlayerSettings.WeixinMiniGame.emscriptenArgs);
|
||||
@ -2246,7 +2270,9 @@ namespace WeChatWASM
|
||||
{
|
||||
var importer = AssetImporter.GetAtPath(jsLibs[i]) as PluginImporter;
|
||||
bool value = i == index;
|
||||
#if PLATFORM_WEIXINMINIGAME
|
||||
#if PLATFORM_PLAYABLEADS
|
||||
importer.SetCompatibleWithPlatform(BuildTarget.PlayableAds, value);
|
||||
#elif PLATFORM_WEIXINMINIGAME
|
||||
importer.SetCompatibleWithPlatform(BuildTarget.WeixinMiniGame, value);
|
||||
#else
|
||||
importer.SetCompatibleWithPlatform(BuildTarget.WebGL, value);
|
||||
|
||||
@ -186,7 +186,7 @@ namespace WeChatWASM
|
||||
this.formCheckbox("webgl2", "WebGL2.0");
|
||||
this.formCheckbox("iOSPerformancePlus", "iOSPerformancePlus(?)", "是否使用iOS高性能+渲染方案,有助于提升渲染兼容性、降低WebContent进程内存");
|
||||
this.formCheckbox("EmscriptenGLX", "EmscriptenGLX(?)", "是否使用EmscriptenGLX渲染方案");
|
||||
// this.formCheckbox("iOSMetal", "iOSMetal(?)", "是否使用iOSMetal渲染方案,需要开启iOS高性能+模式,有助于提升运行性能,降低iOS功耗");
|
||||
this.formCheckbox("iOSMetal", "iOSMetal(?)", "是否使用iOSMetal渲染方案,需要开启iOS高性能+模式,有助于提升运行性能,降低iOS功耗");
|
||||
this.formCheckbox("deleteStreamingAssets", "Clear Streaming Assets");
|
||||
this.formCheckbox("cleanBuild", "Clean WebGL Build");
|
||||
// this.formCheckbox("cleanCloudDev", "Clean Cloud Dev");
|
||||
|
||||
@ -2,7 +2,7 @@ namespace WeChatWASM
|
||||
{
|
||||
public class WXPluginVersion
|
||||
{
|
||||
public static string pluginVersion = "202509160800"; // 这一行不要改他,导出的时候会自动替换
|
||||
public static string pluginVersion = "202510170916"; // 这一行不要改他,导出的时候会自动替换
|
||||
}
|
||||
|
||||
public class WXPluginConf
|
||||
|
||||
Binary file not shown.
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 785f17acd70f11683ea185abb2b70992
|
||||
guid: cd3c25e0d380518aff674d2df1f40cbe
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -10,7 +10,9 @@ internal class DisableKeyboardInput : MonoBehaviour
|
||||
private static void OnGameLaunch()
|
||||
{
|
||||
#if !UNITY_EDITOR
|
||||
#if PLATFORM_WEIXINMINIGAME
|
||||
#if PLATFORM_PLAYABLEADS
|
||||
PlayableAdsInput.mobileKeyboardSupport = false;
|
||||
#elif PLATFORM_WEIXINMINIGAME
|
||||
WeixinMiniGameInput.mobileKeyboardSupport = false;
|
||||
#elif PLATFORM_WEBGL
|
||||
#if UNITY_2022_1_OR_NEWER
|
||||
|
||||
@ -627,9 +627,6 @@ mergeInto(LibraryManager.library, {
|
||||
stringToUTF8(returnStr, buffer, bufferSize);
|
||||
return buffer;
|
||||
},
|
||||
WXSetSyncReadCacheEnabled: function(enabled) {
|
||||
window.WXWASMSDK.WXSetSyncReadCacheEnabled(enabled);
|
||||
},
|
||||
WXGetPluginCachePath: function() {
|
||||
var returnStr = window.WXWASMSDK.WXGetPluginCachePath();
|
||||
var bufferSize = lengthBytesUTF8(returnStr || '') + 1;
|
||||
|
||||
@ -51,6 +51,7 @@ var WXAssetBundleLibrary = {
|
||||
WXFS.msg = "";
|
||||
WXFS.fd2wxStream = new Map;
|
||||
WXFS.path2fd = new Map;
|
||||
WXFS.refRecord = new Map;
|
||||
WXFS.fs = wx.getFileSystemManager();
|
||||
WXFS.nowfd = FS.MAX_OPEN_FDS + 1;
|
||||
WXFS.isWXAssetBundle = function(url){
|
||||
@ -308,6 +309,9 @@ var WXAssetBundleLibrary = {
|
||||
}
|
||||
if(!WXFS.disk.has(path)){
|
||||
WXFS.disk.set(path, 0);
|
||||
WXFS.refRecord.set(path, 1);
|
||||
} else {
|
||||
WXFS.refRecord.set(path, WXFS.refRecord.get(path) + 1);
|
||||
}
|
||||
return true;
|
||||
},
|
||||
@ -315,11 +319,17 @@ var WXAssetBundleLibrary = {
|
||||
UnloadbyPath: function (ptr) {
|
||||
var path = WXFS.url2path(UTF8ToString(ptr));
|
||||
var fd = WXFS.path2fd.get(path);
|
||||
if(WXFS.cache.has(fd)){
|
||||
WXFS.cache.delete(fd);
|
||||
}
|
||||
if(WXFS.disk.has(path)){
|
||||
WXFS.disk.delete(path);
|
||||
var refCount = WXFS.refRecord.get(path);
|
||||
if(!refCount) return;
|
||||
refCount -= 1;
|
||||
WXFS.refRecord.set(path, refCount);
|
||||
if(!refCount){
|
||||
if(WXFS.cache.has(fd)){
|
||||
WXFS.cache.delete(fd);
|
||||
}
|
||||
if(WXFS.disk.has(path)){
|
||||
WXFS.disk.delete(path);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ffcf22f69c45d4919a04626e60e86c20
|
||||
guid: f0cbdcf50f6d52cea758f1ea825443c0
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
@ -7,21 +7,68 @@ PluginImporter:
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isOverridable: 1
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
: Any
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
Exclude Editor: 0
|
||||
Exclude Linux64: 1
|
||||
Exclude OSXUniversal: 1
|
||||
Exclude WebGL: 0
|
||||
Exclude Win: 1
|
||||
Exclude Win64: 1
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 1
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
DefaultValueInitialized: true
|
||||
OS: AnyOS
|
||||
- first:
|
||||
Standalone: Linux64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
DefaultValueInitialized: true
|
||||
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: 1
|
||||
settings: {}
|
||||
- first:
|
||||
WeixinMiniGame: WeixinMiniGame
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
|
||||
276
Runtime/WX.cs
276
Runtime/WX.cs
@ -276,6 +276,16 @@ namespace WeChatWASM
|
||||
WXSDKManagerHandler.Instance.CreateBLEPeripheralServer(callback);
|
||||
}
|
||||
|
||||
/// <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)
|
||||
{
|
||||
WXSDKManagerHandler.Instance.ExitChatTool(callback);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// [wx.exitMiniProgram(Object object)](https://developers.weixin.qq.com/minigame/dev/api/navigate/wx.exitMiniProgram.html)
|
||||
/// 需要基础库: `2.17.3`
|
||||
@ -511,6 +521,45 @@ namespace WeChatWASM
|
||||
WXSDKManagerHandler.Instance.GetChannelsLiveNoticeInfo(callback);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// [wx.getChatToolInfo(Object object)](https://developers.weixin.qq.com/minigame/dev/api/chattool/wx.getChatToolInfo.html)
|
||||
/// 需要基础库: `3.7.12`
|
||||
/// 获取聊天工具模式下的群聊信息。
|
||||
/// 需要注意的是,单聊群和多聊群下返回的群唯一标识是不同的。
|
||||
/// 1. 多聊群下返回 opengid
|
||||
/// 2. 单聊群下返回 open_single_roomid
|
||||
/// 同时将返回用户在群(含单聊)下的唯一标识 group_openid。
|
||||
/// **示例代码**
|
||||
/// ```js
|
||||
/// wx.getChatToolInfo({
|
||||
/// success(res) {
|
||||
/// // res
|
||||
/// {
|
||||
/// errMsg: 'getChatToolInfo:ok',
|
||||
/// encryptedData: '',
|
||||
/// iv: ''
|
||||
/// }
|
||||
/// },
|
||||
/// fail() {
|
||||
/// }
|
||||
/// })
|
||||
/// ```
|
||||
/// 敏感数据有两种获取方式,一是使用 [加密数据解密算法](https://developers.weixin.qq.com/minigame/dev/guide/open-ability/signature.html#加密数据解密算法) 。
|
||||
/// 获取得到的开放数据为以下 json 结构(其中 opengid 为当前群的唯一标识):
|
||||
/// ```json
|
||||
/// {
|
||||
/// "opengid": "OPENGID", // 多聊群下返回的群唯一标识
|
||||
/// "open_single_roomid": "", // 单聊群下返回的群唯一标识
|
||||
/// "group_openid": "", // 用户在当前群的唯一标识
|
||||
/// "chat_type": 3, // 聊天室类型
|
||||
/// }
|
||||
/// ```
|
||||
/// </summary>
|
||||
public static void GetChatToolInfo(GetChatToolInfoOption callback)
|
||||
{
|
||||
WXSDKManagerHandler.Instance.GetChatToolInfo(callback);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// [wx.getClipboardData(Object object)](https://developers.weixin.qq.com/minigame/dev/api/device/clipboard/wx.getClipboardData.html)
|
||||
/// 需要基础库: `1.1.0`
|
||||
@ -641,6 +690,16 @@ namespace WeChatWASM
|
||||
WXSDKManagerHandler.Instance.GetGameClubData(callback);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// [wx.getGameExptInfo(Object object)](https://developers.weixin.qq.com/minigame/dev/api/data-analysis/wx.getGameExptInfo.html)
|
||||
/// 需要基础库: `3.8.8`
|
||||
/// 给定实验参数数组,获取对应的实验参数值
|
||||
/// </summary>
|
||||
public static void GetGameExptInfo(GetGameExptInfoOption callback)
|
||||
{
|
||||
WXSDKManagerHandler.Instance.GetGameExptInfo(callback);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// [wx.getGroupEnterInfo(Object object)](https://developers.weixin.qq.com/minigame/dev/api/open-api/group/wx.getGroupEnterInfo.html)
|
||||
/// 需要基础库: `2.10.4`
|
||||
@ -683,6 +742,16 @@ namespace WeChatWASM
|
||||
WXSDKManagerHandler.Instance.GetGroupEnterInfo(callback);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// [wx.getGroupMembersInfo(Object object)](https://developers.weixin.qq.com/minigame/dev/api/open-api/data/wx.getGroupMembersInfo.html)
|
||||
/// 需要基础库: `3.7.12`
|
||||
/// 获取所选群成员的头像、昵称,自行在开放数据域中渲染
|
||||
/// </summary>
|
||||
public static void GetGroupMembersInfo(GetGroupMembersInfoOption callback)
|
||||
{
|
||||
WXSDKManagerHandler.Instance.GetGroupMembersInfo(callback);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// [wx.getInferenceEnvInfo(Object object)](https://developers.weixin.qq.com/minigame/dev/api/ai/inference/wx.getInferenceEnvInfo.html)
|
||||
/// 需要基础库: `2.30.1`
|
||||
@ -847,27 +916,6 @@ 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`
|
||||
/// 获取转发详细信息(主要是获取群ID)。 从群聊内的小程序消息卡片打开小程序时,调用此接口才有效。从基础库 v2.17.3 开始,推荐用 [wx.getGroupEnterInfo](https://developers.weixin.qq.com/minigame/dev/api/open-api/group/wx.getGroupEnterInfo.html) 替代此接口。
|
||||
/// **示例代码**
|
||||
/// 敏感数据获取方式 [加密数据解密算法](https://developers.weixin.qq.com/minigame/dev/guide/open-ability/signature.html#加密数据解密算法) 。
|
||||
/// 获取得到的开放数据为以下 json 结构(其中 openGId 为当前群的唯一标识):
|
||||
/// ```json
|
||||
/// {
|
||||
/// "openGId": "OPENGID"
|
||||
/// }
|
||||
/// ```
|
||||
/// **Tips**
|
||||
/// - 如需要展示群名称,小程序可以使用 [开放数据组件](https://developers.weixin.qq.com/minigame/dev/guide/open-ability/open-data.html)
|
||||
/// - 小游戏可以通过 [`wx.getGroupInfo`](https://developers.weixin.qq.com/minigame/dev/api/open-api/data/wx.getGroupInfo.html) 接口获取群名称
|
||||
/// </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`
|
||||
@ -1272,6 +1320,16 @@ namespace WeChatWASM
|
||||
WXSDKManagerHandler.Instance.NotifyBLECharacteristicValueChange(callback);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// [wx.notifyGroupMembers(Object object)](https://developers.weixin.qq.com/minigame/dev/api/chattool/wx.notifyGroupMembers.html)
|
||||
/// 需要基础库: `3.7.12`
|
||||
/// 提醒用户完成任务,标题长度不超过 30 个字符,支持中英文和数字,中文算2个字符。
|
||||
/// </summary>
|
||||
public static void NotifyGroupMembers(NotifyGroupMembersOption callback)
|
||||
{
|
||||
WXSDKManagerHandler.Instance.NotifyGroupMembers(callback);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// [wx.openAppAuthorizeSetting(Object object)](https://developers.weixin.qq.com/minigame/dev/api/base/system/wx.openAppAuthorizeSetting.html)
|
||||
/// 需要基础库: `2.25.3`
|
||||
@ -1383,6 +1441,19 @@ namespace WeChatWASM
|
||||
WXSDKManagerHandler.Instance.OpenChannelsUserProfile(callback);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// [wx.openChatTool(Object object)](https://developers.weixin.qq.com/minigame/dev/api/chattool/wx.openChatTool.html)
|
||||
/// 需要基础库: `3.7.12`
|
||||
/// 进入聊天工具模式。
|
||||
/// 1. 不传入聊天室id时,微信会拉起聊天列表让用户选择,用户选择后绑定聊天室进入聊天工具模式。
|
||||
/// 2. 传入聊天室id时(群聊为opengid,单聊为open_single_roomid),会直接绑定该聊天室进入,此时必须传入对应的 chatType。
|
||||
/// 3. 聊天室类型可从 [[getGroupEnterInfo]](https://developers.weixin.qq.com/minigame/dev/api/open-api/group/wx.getGroupEnterInfo.html) 返回值中获取。
|
||||
/// </summary>
|
||||
public static void OpenChatTool(OpenChatToolOption callback)
|
||||
{
|
||||
WXSDKManagerHandler.Instance.OpenChatTool(callback);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// [wx.openCustomerServiceChat(Object object)](https://developers.weixin.qq.com/minigame/dev/api/open-api/service-chat/wx.openCustomerServiceChat.html)
|
||||
/// 需要基础库: `2.30.4`
|
||||
@ -1906,6 +1977,25 @@ namespace WeChatWASM
|
||||
WXSDKManagerHandler.Instance.ScanCode(callback);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// [wx.selectGroupMembers(Object object)](https://developers.weixin.qq.com/minigame/dev/api/chattool/wx.selectGroupMembers.html)
|
||||
/// 需要基础库: `3.7.12`
|
||||
/// 选择聊天室的成员,并返回选择成员的 group_openid。若当前为群聊,则会拉起成员选择器;若当前为单聊,则直接返回双方的 group_openid。
|
||||
/// ****
|
||||
/// ```js
|
||||
/// wx.selectGroupMembers({
|
||||
/// maxSelectCount: 3,
|
||||
/// success(res) {
|
||||
/// // res.members
|
||||
/// }
|
||||
/// })
|
||||
/// ```
|
||||
/// </summary>
|
||||
public static void SelectGroupMembers(SelectGroupMembersOption callback)
|
||||
{
|
||||
WXSDKManagerHandler.Instance.SelectGroupMembers(callback);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// [wx.setBLEMTU(Object object)](https://developers.weixin.qq.com/minigame/dev/api/device/bluetooth-ble/wx.setBLEMTU.html)
|
||||
/// 需要基础库: `2.11.0`
|
||||
@ -2068,6 +2158,56 @@ namespace WeChatWASM
|
||||
WXSDKManagerHandler.Instance.SetVisualEffectOnCapture(callback);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// [wx.shareAppMessageToGroup(Object object)](https://developers.weixin.qq.com/minigame/dev/api/chattool/wx.shareAppMessageToGroup.html)
|
||||
/// 需要基础库: `3.7.12`
|
||||
/// 转发小程序卡片到聊天
|
||||
/// </summary>
|
||||
public static void ShareAppMessageToGroup(ShareAppMessageToGroupOption callback)
|
||||
{
|
||||
WXSDKManagerHandler.Instance.ShareAppMessageToGroup(callback);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// [wx.shareEmojiToGroup(Object object)](https://developers.weixin.qq.com/minigame/dev/api/chattool/wx.shareEmojiToGroup.html)
|
||||
/// 需要基础库: `3.7.12`
|
||||
/// 转发表情到聊天
|
||||
/// </summary>
|
||||
public static void ShareEmojiToGroup(ShareEmojiToGroupOption callback)
|
||||
{
|
||||
WXSDKManagerHandler.Instance.ShareEmojiToGroup(callback);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// [wx.shareImageToGroup(Object object)](https://developers.weixin.qq.com/minigame/dev/api/chattool/wx.shareImageToGroup.html)
|
||||
/// 需要基础库: `3.7.12`
|
||||
/// 转发图片到聊天
|
||||
/// </summary>
|
||||
public static void ShareImageToGroup(ShareImageToGroupOption callback)
|
||||
{
|
||||
WXSDKManagerHandler.Instance.ShareImageToGroup(callback);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// [wx.shareTextToGroup(Object object)](https://developers.weixin.qq.com/minigame/dev/api/chattool/wx.shareTextToGroup.html)
|
||||
/// 需要基础库: `3.7.12`
|
||||
/// 转发文本到聊天
|
||||
/// </summary>
|
||||
public static void ShareTextToGroup(ShareTextToGroupOption callback)
|
||||
{
|
||||
WXSDKManagerHandler.Instance.ShareTextToGroup(callback);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// [wx.shareVideoToGroup(Object object)](https://developers.weixin.qq.com/minigame/dev/api/chattool/wx.shareVideoToGroup.html)
|
||||
/// 需要基础库: `3.7.12`
|
||||
/// 转发视频到聊天
|
||||
/// </summary>
|
||||
public static void ShareVideoToGroup(ShareVideoToGroupOption callback)
|
||||
{
|
||||
WXSDKManagerHandler.Instance.ShareVideoToGroup(callback);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// [wx.showActionSheet(Object object)](https://developers.weixin.qq.com/minigame/dev/api/ui/interaction/wx.showActionSheet.html)
|
||||
/// 显示操作菜单
|
||||
@ -2578,6 +2718,16 @@ namespace WeChatWASM
|
||||
WXSDKManagerHandler.Instance.ExitPointerLock();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// [wx.isChatTool()](https://developers.weixin.qq.com/minigame/dev/api/chattool/wx.isChatTool.html)
|
||||
/// 需要基础库: `3.7.12`
|
||||
/// 是否处于聊天工具模式
|
||||
/// </summary>
|
||||
public static void IsChatTool()
|
||||
{
|
||||
WXSDKManagerHandler.Instance.IsChatTool();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// [wx.removeStorageSync(string key)](https://developers.weixin.qq.com/minigame/dev/api/storage/wx.removeStorageSync.html)
|
||||
/// [wx.removeStorage](https://developers.weixin.qq.com/minigame/dev/api/storage/wx.removeStorage.html) 的同步版本
|
||||
@ -2667,23 +2817,6 @@ namespace WeChatWASM
|
||||
WXSDKManagerHandler.Instance.RevokeBufferURL(url);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// [wx.setStorageSync(string key, any data)](https://developers.weixin.qq.com/minigame/dev/api/storage/wx.setStorageSync.html)
|
||||
/// 将数据存储在本地缓存中指定的 key 中。会覆盖掉原来该 key 对应的内容。除非用户主动删除或因存储空间原因被系统清理,否则数据都一直可用。单个 key 允许存储的最大数据长度为 1MB,所有数据存储上限为 10MB。
|
||||
/// **注意**
|
||||
/// storage 应只用来进行数据的持久化存储,不应用于运行时的数据传递或全局状态管理。启动过程中过多的同步读写存储,会显著影响启动耗时。
|
||||
/// **示例代码**
|
||||
/// ```js
|
||||
/// try {
|
||||
/// wx.setStorageSync('key', 'value')
|
||||
/// } catch (e) { }
|
||||
/// ```
|
||||
/// </summary>
|
||||
public static void SetStorageSync<T>(string key, T data)
|
||||
{
|
||||
WXSDKManagerHandler.Instance.SetStorageSync(key, data);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// [wx.shareAppMessage(Object object)](https://developers.weixin.qq.com/minigame/dev/api/share/wx.shareAppMessage.html)
|
||||
/// 主动拉起转发,进入选择通讯录界面。
|
||||
@ -2992,12 +3125,12 @@ namespace WeChatWASM
|
||||
/// [wx.onError(function listener)](https://developers.weixin.qq.com/minigame/dev/api/base/app/app-event/wx.onError.html)
|
||||
/// 监听全局错误事件
|
||||
/// </summary>
|
||||
public static void OnError(Action<Error> error)
|
||||
public static void OnError(Action<ListenerError> error)
|
||||
{
|
||||
WXSDKManagerHandler.Instance.OnError(error);
|
||||
}
|
||||
|
||||
public static void OffError(Action<Error> error)
|
||||
public static void OffError(Action<ListenerError> error)
|
||||
{
|
||||
WXSDKManagerHandler.Instance.OffError(error);
|
||||
}
|
||||
@ -3274,6 +3407,28 @@ namespace WeChatWASM
|
||||
WXSDKManagerHandler.Instance.OffNetworkWeakChange(result);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// [wx.onOfficialComponentsInfoChange(function listener)](https://developers.weixin.qq.com/minigame/dev/api/ui/menu/wx.onOfficialComponentsInfoChange.html)
|
||||
/// 需要基础库: `3.7.12`
|
||||
/// 监听官方组件信息变化事件
|
||||
/// **示例代码**
|
||||
/// ```js
|
||||
/// const callback = res => console.log('officialComponentsInfoChange', res)
|
||||
/// wx.onOfficialComponentsInfoChange(callback)
|
||||
/// // 取消监听
|
||||
/// wx.offOfficialComponentsInfoChange(callback)
|
||||
/// ```
|
||||
/// </summary>
|
||||
public static void OnOfficialComponentsInfoChange(Action<OnOfficialComponentsInfoChangeListenerResult> result)
|
||||
{
|
||||
WXSDKManagerHandler.Instance.OnOfficialComponentsInfoChange(result);
|
||||
}
|
||||
|
||||
public static void OffOfficialComponentsInfoChange(Action<OnOfficialComponentsInfoChangeListenerResult> result)
|
||||
{
|
||||
WXSDKManagerHandler.Instance.OffOfficialComponentsInfoChange(result);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// [wx.onScreenRecordingStateChanged(function listener)](https://developers.weixin.qq.com/minigame/dev/api/device/screen/wx.onScreenRecordingStateChanged.html)
|
||||
/// 需要基础库: `3.1.4`
|
||||
@ -3455,10 +3610,25 @@ namespace WeChatWASM
|
||||
WXSDKManagerHandler.Instance.OffWindowResize(result);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// [wx.onWindowStateChange(function listener)](https://developers.weixin.qq.com/minigame/dev/api/ui/window/wx.onWindowStateChange.html)
|
||||
/// 需要基础库: `3.8.8`
|
||||
/// 监听小程序窗口状态变化事件。仅适用于 PC 平台
|
||||
/// </summary>
|
||||
public static void OnWindowStateChange(Action<OnWindowStateChangeListenerResult> result)
|
||||
{
|
||||
WXSDKManagerHandler.Instance.OnWindowStateChange(result);
|
||||
}
|
||||
|
||||
public static void OffWindowStateChange(Action<OnWindowStateChangeListenerResult> result)
|
||||
{
|
||||
WXSDKManagerHandler.Instance.OffWindowStateChange(result);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// [wx.onAddToFavorites(function listener)](https://developers.weixin.qq.com/minigame/dev/api/share/wx.onAddToFavorites.html)
|
||||
/// 需要基础库: `2.10.3`
|
||||
/// 监听用户点击菜单「收藏」按钮时触发的事件(安卓7.0.15起支持,iOS 暂不支持)
|
||||
/// 监听用户点击菜单「收藏」按钮时触发的事件
|
||||
/// </summary>
|
||||
public static void OnAddToFavorites(Action<Action<OnAddToFavoritesListenerResult>> callback)
|
||||
{
|
||||
@ -3769,6 +3939,30 @@ namespace WeChatWASM
|
||||
return WXSDKManagerHandler.GetMenuButtonBoundingClientRect();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// [Object wx.getOfficialComponentsInfo()](https://developers.weixin.qq.com/minigame/dev/api/ui/menu/wx.getOfficialComponentsInfo.html)
|
||||
/// 需要基础库: `3.7.12`
|
||||
/// 获取所有官方组件的相关信息
|
||||
/// **示例代码**
|
||||
/// ```js
|
||||
/// const componentsInfo = wx.getOfficialComponentsInfo();
|
||||
/// const { notificationComponentInfo } = componentsInfo;
|
||||
/// if (notificationComponentInfo.isShow) {
|
||||
/// console.log(notificationComponentInfo.boundingClientRect.width);
|
||||
/// console.log(notificationComponentInfo.boundingClientRect.height);
|
||||
/// console.log(notificationComponentInfo.boundingClientRect.top);
|
||||
/// console.log(notificationComponentInfo.boundingClientRect.left);
|
||||
/// console.log(notificationComponentInfo.boundingClientRect.bottom);
|
||||
/// console.log(notificationComponentInfo.boundingClientRect.right);
|
||||
/// }
|
||||
/// ```
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static OfficialComponentsInfo GetOfficialComponentsInfo()
|
||||
{
|
||||
return WXSDKManagerHandler.GetOfficialComponentsInfo();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// [Object wx.getStorageInfoSync()](https://developers.weixin.qq.com/minigame/dev/api/storage/wx.getStorageInfoSync.html)
|
||||
/// [wx.getStorageInfo](https://developers.weixin.qq.com/minigame/dev/api/storage/wx.getStorageInfo.html) 的同步版本
|
||||
|
||||
@ -766,16 +766,6 @@ namespace WeChatWASM
|
||||
return WXSDKManagerHandler.Instance.GetCachePath(url);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 临时修复安卓在主线程繁忙时,异步读缓存耗时高,但需关注同步读文件可能导致掉帧
|
||||
/// 仅在有需要的情况下主动开启,需要同步读的场景完成后再主动关闭
|
||||
/// </summary>
|
||||
/// <param name="enabled"></param>
|
||||
public static void SetSyncReadCacheEnabled(bool enabled)
|
||||
{
|
||||
WXSDKManagerHandler.Instance.SetSyncReadCacheEnabled(enabled);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
@ -1147,6 +1137,7 @@ namespace WeChatWASM
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region PageManager
|
||||
/// <summary>
|
||||
/// [[PageManager](https://developers.weixin.qq.com/minigame/dev/api/open-api/openlink/PageManager.html) wx.createPageManager()](https://developers.weixin.qq.com/minigame/dev/api/open-api/openlink/wx.createPageManager.html)
|
||||
/// 需要基础库: `3.6.7`
|
||||
@ -1172,6 +1163,22 @@ namespace WeChatWASM
|
||||
{
|
||||
return WXSDKManagerHandler.Instance.CreatePageManager();
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 上报
|
||||
/// <returns></returns>
|
||||
public static WXMiniReportManager GetMiniReportManager(GetMiniReportManagerParam param)
|
||||
{
|
||||
return WXSDKManagerHandler.Instance.GetMiniReportManager(param);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 社交特色能力
|
||||
public static WXRankManager GetRankManager() {
|
||||
return WXSDKManagerHandler.Instance.GetRankManager();
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#endif
|
||||
|
||||
@ -149,7 +149,9 @@ public class WXTouchInputOverride : BaseInput
|
||||
Text text = selectedObject.GetComponent<Text>();
|
||||
if (text != null)
|
||||
{
|
||||
#if PLATFORM_WEIXINMINIGAME
|
||||
#if PLATFORM_PLAYABLEADS
|
||||
PlayableAdsInput.mobileKeyboardSupport = true;
|
||||
#elif PLATFORM_WEIXINMINIGAME
|
||||
WeixinMiniGameInput.mobileKeyboardSupport = true;
|
||||
#elif PLATFORM_WEBGL
|
||||
#if UNITY_2022_1_OR_NEWER
|
||||
@ -159,7 +161,9 @@ public class WXTouchInputOverride : BaseInput
|
||||
}
|
||||
else
|
||||
{
|
||||
#if PLATFORM_WEIXINMINIGAME
|
||||
#if PLATFORM_PLAYABLEADS
|
||||
PlayableAdsInput.mobileKeyboardSupport = false;
|
||||
#elif PLATFORM_WEIXINMINIGAME
|
||||
WeixinMiniGameInput.mobileKeyboardSupport = false;
|
||||
#elif PLATFORM_WEBGL
|
||||
#if UNITY_2022_1_OR_NEWER
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2612d39a2adf9a6014127cd39e6b3407
|
||||
guid: 1bb53c590d0ad78cfcdf9ab0e8489671
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9db32e7236ff03460e55a764bffa846f
|
||||
guid: 098088f7d8070f9c1684de9a919dc8a9
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: db9548343468a2e8dde2f89e151158aa
|
||||
guid: 6a5d81c91b615a1d14735268dfbc82e1
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: da96340677c85a07609fc9ccdb2fdf24
|
||||
guid: ecd6c8b593c6800ae9f932e049a0a6e3
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 745f86b07dbcdd56ff62b3681ffce1c9
|
||||
guid: 03712e26c1294e31d97895ded32a252e
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2744a3804c0377e30a5b0c5d51db2f6b
|
||||
guid: a3626ce42985e1b4d35d9aafbe237fa4
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2af611a65a2f1bbf650bd9c1d10b1aa5
|
||||
guid: e31b65ff6eb9ccacf4668c6b5aa10ed1
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b24e6e83b8de92590a80f407d3fe3d86
|
||||
guid: 039c9c5a09ede2acae062298df40cd71
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c87d2375a205f8546f74f0d50655013d
|
||||
guid: 0bedad02fdc5e85ffda1183c42c97aea
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 95aafc6e2a2de80a3828b19d70b20736
|
||||
guid: d9d465e5e08340e440713126fbd0faf9
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0b7bcc43f99a8c3fbee8a06897a24eb3
|
||||
guid: beccbb28aa08464a14b32441ed497cbb
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c9a6074eea58ed29d860754dafceba5a
|
||||
guid: 951fe1ce663c37339271e898a351fdf5
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 138b3932896ad9a137aab4ec8fc6968d
|
||||
guid: 576947dce05b697ce5902e22bc3d549f
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 85d0efb5e64dec929be71386d5a3a849
|
||||
guid: c695874cf36160117581cff0525cea4d
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1ef20c0b38c5b07c5536eaa23a8c608b
|
||||
guid: 3a5f09c06cb0542b82c3714ceae052df
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: df42191698513563c97ee768190b167e
|
||||
guid: 11aee8209a34ac596b43ce58f67c0164
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ea935edd486cdcf95e3db226d30f9bb4
|
||||
guid: 0bf6c526cf672c2e5cc1f5ca49ae5588
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4b7a82f0b678e556cd45dc018482af2c
|
||||
guid: 539cc6f1c62cda3469e8d61f16283b03
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fcb5b701ca418377f4b87aa57ad9e44f
|
||||
guid: 3dd7597d250d5b97c8355924a3083571
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 036ace672923b7964ca607be47797ff8
|
||||
guid: d139fcb5b02b71108be197554e477229
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f138d3d7e862c98ca876465d76614410
|
||||
guid: e341336a6a21ab7361d92d75a0c19dc2
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7e4f43362c5185fa63fd2368cde02947
|
||||
guid: 42ef24810ee98e0bc9d07157bfac36df
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d507fcc681e3df61a68daefe78742477
|
||||
guid: e69342a5354a6401ff998713d6def2f2
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 051e3ad4761d5bb61a28f8e9108082ab
|
||||
guid: 2e1201143be5d8f0a70e77283e676c0c
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c438d3f8f415ad74021aac02b89c85fe
|
||||
guid: e030f7d85aeae600d94ff3705d520986
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3d1b49fb81fe86f40c24585d3b404808
|
||||
guid: 32527dcd8500505f57cebfd77131d8b7
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0032633c9aa4b01fd61e9459e65bc5ce
|
||||
guid: eb9a3261c638f7bd495a4dd3857612bd
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 73b09a7d95e4911191700ec882b070f2
|
||||
guid: e1b36b124d58e40979749eb7fd7a3a19
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5bf0f010954ad7c7188ec4a4e67bc84c
|
||||
guid: 60aeabc128fb14c7bf708b14c88a1b8b
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3192f10263543e32c6127a2724b631aa
|
||||
guid: 0ab4ca9d37162269926707a74636522f
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3b762d5ea1a4f425455ae341319cb565
|
||||
guid: 211250b10ae30a77eeb42493a580441d
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ac4dc8990b0dc9d2ecb9e22fceb30c09
|
||||
guid: 2cb6edf532d844b8930ee05a96bcc1cb
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 660bbb210dcebf2e3bdc3e3adcedd22a
|
||||
guid: f1087fb5c37e2f400c1ca43feb719a0f
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1294735d54e3c7e85cc717243837b4ae
|
||||
guid: 48c7096065a73765e8b11499c4970364
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8f111902f93174de27cb26ceda552d74
|
||||
guid: 6348b2da806d13d8c3d838d29cf926d3
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dfe9a302c0cfaf5d50fc7c4ac231a8d2
|
||||
guid: ad89c4fa7297834e8055c028fcca3d8e
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6f6bf7b1d614ea2cb43955e0926f6775
|
||||
guid: 5e5cbe5d9cde77af5f7abac46af201bf
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -93,6 +93,14 @@ export const ResType = {
|
||||
top: 'number',
|
||||
width: 'number',
|
||||
},
|
||||
OfficialComponentsInfo: {
|
||||
notificationComponentInfo: 'OfficialComponentInfo',
|
||||
},
|
||||
OfficialComponentInfo: {
|
||||
boundingClientRect: 'ClientRect',
|
||||
isVisible: 'bool',
|
||||
name: 'string',
|
||||
},
|
||||
GetStorageInfoSyncOption: {
|
||||
currentSize: 'number',
|
||||
keys: 'string[]',
|
||||
@ -180,10 +188,15 @@ export const ResType = {
|
||||
downstreamThroughputKbpsEstimate: 'number',
|
||||
estimate_nettype: 'number',
|
||||
fetchStart: 'number',
|
||||
httpDNSDomainLookUpEnd: 'number',
|
||||
httpDNSDomainLookUpStart: 'number',
|
||||
httpRttEstimate: 'number',
|
||||
invokeStart: 'number',
|
||||
peerIP: 'string',
|
||||
port: 'number',
|
||||
protocol: 'string',
|
||||
queueEnd: 'number',
|
||||
queueStart: 'number',
|
||||
receivedBytedCount: 'number',
|
||||
redirectEnd: 'number',
|
||||
redirectStart: 'number',
|
||||
@ -518,6 +531,12 @@ export const ResType = {
|
||||
status: 'number',
|
||||
errMsg: 'string',
|
||||
},
|
||||
GetChatToolInfoSuccessCallbackResult: {
|
||||
cloudID: 'string',
|
||||
encryptedData: 'string',
|
||||
errMsg: 'string',
|
||||
iv: 'string',
|
||||
},
|
||||
GetClipboardDataSuccessCallbackOption: {
|
||||
data: 'string',
|
||||
errMsg: 'string',
|
||||
@ -555,6 +574,10 @@ export const ResType = {
|
||||
signature: 'string',
|
||||
errMsg: 'string',
|
||||
},
|
||||
GetGameExptInfoSuccessCallbackResult: {
|
||||
list: 'object',
|
||||
errMsg: 'string',
|
||||
},
|
||||
GetGroupEnterInfoError: {
|
||||
errMsg: 'string',
|
||||
errCode: 'number',
|
||||
@ -565,6 +588,20 @@ export const ResType = {
|
||||
errMsg: 'string',
|
||||
iv: 'string',
|
||||
},
|
||||
GetGroupMembersInfoSuccessCallbackResult: {
|
||||
membersInfo: 'ResultOpenDataContextUserInfo[]',
|
||||
errMsg: 'string',
|
||||
},
|
||||
ResultOpenDataContextUserInfo: {
|
||||
avatarUrl: 'string',
|
||||
city: 'string',
|
||||
country: 'string',
|
||||
gender: 'number',
|
||||
language: 'string',
|
||||
nickName: 'string',
|
||||
openId: 'string',
|
||||
province: 'string',
|
||||
},
|
||||
GetInferenceEnvInfoSuccessCallbackResult: {
|
||||
ver: 'string',
|
||||
errMsg: 'string',
|
||||
@ -667,7 +704,7 @@ export const ResType = {
|
||||
errMsg: 'string',
|
||||
openIdList: 'string[]',
|
||||
},
|
||||
RequestFailCallbackErr: {
|
||||
LoginFailCallbackErr: {
|
||||
errMsg: 'string',
|
||||
errno: 'number',
|
||||
},
|
||||
@ -736,9 +773,8 @@ export const ResType = {
|
||||
OnDeviceOrientationChangeListenerResult: {
|
||||
value: 'string',
|
||||
},
|
||||
Error: {
|
||||
ListenerError: {
|
||||
message: 'string',
|
||||
stack: 'string',
|
||||
},
|
||||
OnGamepadConnectedListenerResult: {
|
||||
gamepad: 'string',
|
||||
@ -784,6 +820,9 @@ export const ResType = {
|
||||
networkType: 'string',
|
||||
weakNet: 'bool',
|
||||
},
|
||||
OnOfficialComponentsInfoChangeListenerResult: {
|
||||
OfficialComponentsInfo: 'OfficialComponentsInfo',
|
||||
},
|
||||
OnScreenRecordingStateChangedListenerResult: {
|
||||
state: 'string',
|
||||
},
|
||||
@ -846,6 +885,9 @@ export const ResType = {
|
||||
windowHeight: 'number',
|
||||
windowWidth: 'number',
|
||||
},
|
||||
OnWindowStateChangeListenerResult: {
|
||||
state: 'string',
|
||||
},
|
||||
OpenCardRequestInfo: {
|
||||
cardId: 'string',
|
||||
code: 'string',
|
||||
@ -889,12 +931,6 @@ export const ResType = {
|
||||
errMsg: 'string',
|
||||
errCode: 'number',
|
||||
},
|
||||
RequestMidasFriendPaymentSuccessCallbackResult: {
|
||||
cloudID: 'string',
|
||||
encryptedData: 'string',
|
||||
errMsg: 'string',
|
||||
iv: 'string',
|
||||
},
|
||||
MidasPaymentError: {
|
||||
errMsg: 'string',
|
||||
errCode: 'number',
|
||||
@ -940,6 +976,10 @@ export const ResType = {
|
||||
scanType: 'string',
|
||||
errMsg: 'string',
|
||||
},
|
||||
GroupMemberInfo: {
|
||||
members: 'string[]',
|
||||
errMsg: 'string',
|
||||
},
|
||||
SetBLEMTUFailCallbackResult: {
|
||||
mtu: 'number',
|
||||
},
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 41c8deca0ff34d264f1244b563739b50
|
||||
guid: 9319aa84d40b112e5af752feb43026f6
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -86,4 +86,12 @@ export const ResTypeOther = {
|
||||
status: 'number',
|
||||
errMsg: 'string',
|
||||
},
|
||||
LoadOption: {
|
||||
openlink: 'string',
|
||||
query: 'object',
|
||||
},
|
||||
ShowOption: {
|
||||
openlink: 'string',
|
||||
query: 'object',
|
||||
},
|
||||
};
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5329bb0b502c4916572146e7353c8880
|
||||
guid: de1fc64667b63bedd9ce6ae6bed37b32
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9aa844e47796f1fe344b8d60b82fa9b7
|
||||
guid: e0b035786f2bd28b047a6be32ac29a87
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -27,10 +27,12 @@ function WX_OneWayNoFunction(functionName, ...params) {
|
||||
}
|
||||
|
||||
|
||||
const onlyReadyResponse = [
|
||||
const onlyReadResponse = [
|
||||
'getSystemSetting',
|
||||
'getAppAuthorizeSetting',
|
||||
];
|
||||
|
||||
const needParseJson = ['WXMiniReportManagerReport'];
|
||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
||||
function WX_SyncFunction(functionName, ...params) {
|
||||
return wx[functionName.replace(/^\w/, (a) => a.toLowerCase())](...params);
|
||||
@ -72,6 +74,10 @@ export default {
|
||||
...config,
|
||||
success(res) {
|
||||
formatResponse(successType, res);
|
||||
|
||||
if (lowerFunctionName === 'getGameExptInfo') {
|
||||
res.list = JSON.stringify(res.list);
|
||||
}
|
||||
moduleHelper.send(`${functionName}Callback`, JSON.stringify({
|
||||
callbackId, type: 'success', res: JSON.stringify(res),
|
||||
}));
|
||||
@ -234,7 +240,7 @@ export default {
|
||||
},
|
||||
WX_SyncFunction_t(functionName, returnType) {
|
||||
const res = WX_SyncFunction(functionName);
|
||||
if (onlyReadyResponse.includes(functionName.replace(/^\w/, (a) => a.toLowerCase()))) {
|
||||
if (onlyReadResponse.includes(functionName.replace(/^\w/, (a) => a.toLowerCase()))) {
|
||||
formatResponse(returnType, JSON.parse(JSON.stringify(res)));
|
||||
return JSON.stringify(res);
|
||||
}
|
||||
@ -355,7 +361,8 @@ export default {
|
||||
}
|
||||
ClassOnEventLists[className + functionName][id + eventName].push(callback);
|
||||
// WXVideoDecoder OnEvent 不规范 特殊处理
|
||||
if (className === 'WXVideoDecoder') {
|
||||
// update: 2025.9.27: 严重怀疑之前 WXPageManager 压根没有跑通过事件监听,跑到下面去了
|
||||
if (className === 'WXVideoDecoder' || className === 'WXPageManager') {
|
||||
obj[functionName.replace(/^\w/, (a) => a.toLowerCase())](eventName, callback);
|
||||
}
|
||||
else {
|
||||
@ -378,7 +385,8 @@ export default {
|
||||
}
|
||||
ClassOnEventLists[className + functionName][id + eventName].forEach((v) => {
|
||||
|
||||
if (className === 'WXVideoDecoder') {
|
||||
|
||||
if (className === 'WXVideoDecoder' || className === 'WXPageManager') {
|
||||
obj[functionName.replace(/^\w/, (a) => a.toLowerCase())](eventName, v);
|
||||
}
|
||||
else {
|
||||
@ -391,6 +399,10 @@ export default {
|
||||
WX_ClassOneWayNoFunction(className, functionName, id);
|
||||
},
|
||||
WX_ClassOneWayNoFunction_vs(className, functionName, id, param1) {
|
||||
if (needParseJson.includes(className + functionName)) {
|
||||
// eslint-disable-next-line no-param-reassign
|
||||
param1 = JSON.parse(param1);
|
||||
}
|
||||
WX_ClassOneWayNoFunction(className, functionName, id, param1);
|
||||
},
|
||||
WX_ClassOneWayNoFunction_t(className, functionName, returnType, id) {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6b3e5628522459cc3dd7964d0a814173
|
||||
guid: 5d17ad94b81af5f4f325336c9bfa8bf5
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4b7402032742928010f5479de54a3d93
|
||||
guid: 18097075eec016b3f21243d7ec2263cc
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 29ce6695da09a0631c4ec513c0da92ae
|
||||
guid: a853733e0c93c18c7055d4b1c78fd017
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d2f786864680ee6890aa7b3f9a91e748
|
||||
guid: 217474a165235b1f34b46a3cf69c0f31
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 14b58d35b818a6a38adec667a7a4aac3
|
||||
guid: 18c6eda2b84b1734c5a1910f35f9ceff
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f1c0b302460c710eb5d6f78e7bbc77b6
|
||||
guid: 18011d82a0290edc9b17b06cc0b8d167
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 23d83e7ac4b7b30b2f8202d7147cd332
|
||||
guid: 618c272331d177ac059b809a35dda999
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 970ffb90d4864c9490b01e9bc44c5de1
|
||||
guid: 07ceb8b0414273aab154e6f3c561f7a0
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 01fc114f60b2df8e2e439805212c97df
|
||||
guid: 41510b01546b41e0390379be609840e6
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ba12dcb22c6474a3ca54b389f5a3332c
|
||||
guid: 8905b7b5bfa9080aec519feb0cbd22c3
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0e128f7c44dd1bce2d633506e5a47d40
|
||||
guid: f15eb9b8473320dd14dbe277f5db3648
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fd4e694f43b0aa3f5a5092bd0511f7d2
|
||||
guid: 0f912e9dcf340d0772f1f5d6b62b693b
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ade8e1257dceffd8772fecb37c8c20fb
|
||||
guid: acb1e93811f4db05bdea5fb3922cf417
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b93c9a0067d6f24d0ee31907c9b8dee0
|
||||
guid: 1f82924d31dec7a3c3ae492b976f787a
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 159d3ecf3853f33f27f82dc14eb1223f
|
||||
guid: da9108349e73fd07068cd94438b6be7d
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ccfdb628122b7b06b4050606f8eafd89
|
||||
guid: e1a6a8f283afe43c351c5f44dcbe0947
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e21691107c19c03863b6b94613ee293b
|
||||
guid: 8e1ec0ffc72bf2b11514b3640797e8fc
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f9dcd5068f86566abbb47b7dc12581a4
|
||||
guid: 2bdb4f884ee184a06e8511beea2025ed
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -23,7 +23,7 @@
|
||||
],
|
||||
"plugins": {
|
||||
"UnityPlugin": {
|
||||
"version": "1.2.83",
|
||||
"version": "1.2.84",
|
||||
"provider": "wxe5a48f1ed5f544b7",
|
||||
"contexts": [
|
||||
{
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7d49b22178f2450803293d12a61eb31e
|
||||
guid: 493be2c3ecc30f830e45f430a4cb264b
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7a1cdee40104ef4f2d71cce0739e9c5c
|
||||
guid: f8e8f0adbabd3ed02ceb7fdb3ab8c069
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5ab2fd9f05d6d847703e15429e8745a3
|
||||
guid: dc0975f77f7c26915dc3c14a5b82939d
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a1bedbee2f4f8aa1e5e1881b864c7183
|
||||
guid: 4cddb22cdd2f5fbda07a61357a1a7973
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5ede05d304e27f419955e65b3e270d9e
|
||||
guid: 833c9ede6c24aff40dbbef0b074df71e
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 94f7f561ba2e9090cb9ccaefe8fdef90
|
||||
guid: fdec8b484e5d93f00502e6594c4f7fa2
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d3ca90f5308418f9e8f878fa484f6aa9
|
||||
guid: a5c7b9a43908ae4bdecd80c653c0a834
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c7081b3840feb201cfbe20e241877fb5
|
||||
guid: c2d4bc3e4ce037b7d266191ce8f25286
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 424d12a4cf887bd4cf31b2757a7e3345
|
||||
guid: dc4d7a9e60bab5f9b4b77965ad61bcf1
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a97f287cbcbf865f60ede1c89af50756
|
||||
guid: 7875e29120eba579511fedbc3eab1b49
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c077b7c5073887a22817a1de3463cbaa
|
||||
guid: f83531d444908f043756a34ae4dc3f8a
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7ca9ace473c408950c8e70a9b587f59b
|
||||
guid: 7bfb57d720359e35e5988e0d23401491
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ed7b40fffc12b226d0f17c68ec425955
|
||||
guid: 008133f3e935f43482bdd6d4a560ae6e
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 35a524449d53878bbdf7b5b5c5ee52e0
|
||||
guid: 0ed044ede58dd37930e89fbcf93139a0
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2562183ed446cc91b818a488f02b810b
|
||||
guid: 8b2836d20c7b541c1660a90f1c9a36d3
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a9e9ca6bcf166e7557365863b246dd5f
|
||||
guid: 405479d785b4b98a443327c8c1d2f9a3
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5828dd6840780c92a087e55722ea515a
|
||||
guid: fbcf7a843866bb38d8b986846f946b03
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user