mirror of
https://github.com/wechat-miniprogram/minigame-tuanjie-transform-sdk.git
synced 2026-04-22 01:35:56 +08:00
Auto-publish pre-release WXSDK.
This commit is contained in:
parent
96838c56f3
commit
2de54a2557
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: 59bd84d896d465c534a7667c78da00c9
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
595
Editor/BuildProfile/WeixinMiniGameSettingsEditor.cs
Normal file
595
Editor/BuildProfile/WeixinMiniGameSettingsEditor.cs
Normal file
@ -0,0 +1,595 @@
|
||||
#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");
|
||||
|
||||
GUI.enabled = false;
|
||||
// WebGL2.0
|
||||
GUILayout.BeginHorizontal();
|
||||
EditorGUILayout.LabelField(string.Empty, GUILayout.Width(10));
|
||||
GUILayout.Label("WebGL2.0(beta)", GUILayout.Width(140));
|
||||
EditorGUILayout.Toggle(false, GUILayout.Width(20));
|
||||
GUILayout.Label("Set in PlayerSettings Override!", GUILayout.Width(200));
|
||||
GUILayout.EndHorizontal();
|
||||
GUI.enabled = true;
|
||||
|
||||
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: ea26445e6c408f886f84ccd30a12aaa8
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
151
Editor/BuildProfile/WeixinSubplatformInterface.cs
Normal file
151
Editor/BuildProfile/WeixinSubplatformInterface.cs
Normal file
@ -0,0 +1,151 @@
|
||||
#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
|
||||
{
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return buildMiniGameError;
|
||||
}
|
||||
|
||||
private WXConvertCore.WXExportError CallDoExport(BuildProfile buildProfile)
|
||||
{
|
||||
WXEditorScriptObject config = UnityUtil.GetEditorConf();
|
||||
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 static 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.");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
#endif
|
||||
7
Editor/BuildProfile/WeixinSubplatformInterface.cs.meta
Normal file
7
Editor/BuildProfile/WeixinSubplatformInterface.cs.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3a204405694d8a3e06157560a643f9f2
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -2,7 +2,7 @@ namespace WeChatWASM
|
||||
{
|
||||
public class WXPluginVersion
|
||||
{
|
||||
public static string pluginVersion = "202509190342"; // 这一行不要改他,导出的时候会自动替换
|
||||
public static string pluginVersion = "202509260245"; // 这一行不要改他,导出的时候会自动替换
|
||||
}
|
||||
|
||||
public class WXPluginConf
|
||||
|
||||
Binary file not shown.
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e912072963154e902b7be4fe8159aa52
|
||||
guid: e27522a75bef6fea5382902543fcf350
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2ceb14b8f4cecafb3aa8d22479fcb871
|
||||
guid: e40e1a0720c120f99ed6bfdd00594292
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
Binary file not shown.
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 31f09172339ff75e95c69cb04127e027
|
||||
guid: cc32523964495af1d7579bdd8b7bb77f
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 275763917a3d8c3deed8a3ddc7625610
|
||||
guid: 92b059f1290b1d45dd23c1e62e21761e
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9ecae81b47ffa6e037d50007a1e74d51
|
||||
guid: f82d0830877ede643f1570e6e2f57bba
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 07c682eb29ad629945f54f71cbdb2474
|
||||
guid: 263884bab8b0ba0ca84f468a26ef255a
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bb54af263e076fd0d5ae00c02c5d09da
|
||||
guid: f122691d49bdbc8d8ad94b73be9c33e0
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fc798ac5a2fdd076ebbb568450db3cce
|
||||
guid: d8fdb7bd07ce3d61adbe29ee782afc8d
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 82ef89e8ec3d39709302120d5a4a29d2
|
||||
guid: 53830314a4ff898962c215de4ed9c625
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 70c7a8c550f2218865cdc89bb721b3e0
|
||||
guid: 685f4acdeac88b559cd4a368f3df6322
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 47c139580194c626f03ed81540cf3644
|
||||
guid: e00b9e9a308261a19718d92355a23bdf
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e4ceb81fa27eb117f8961e71092a8f93
|
||||
guid: f6df7cf1ab01f98b93d172a3f99ed1b0
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2c9d750eb2ab1b4fe03c23c69147cdab
|
||||
guid: 4707bb1e92a9dad7979ca51e5649d931
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4680b7f5e899bc77fcb69e01556e65bd
|
||||
guid: 93deb8b4a9852f02a3e253035cbd65e0
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5efb176c2acd9202bf87406fcbaec1d6
|
||||
guid: 340863abc07a1c4a256089b0a3c39d6b
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 02c80902726fdd4b241102c3561400b2
|
||||
guid: 074c930d86de4b2d71519470e9ff9c3a
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6ee2f1d665b24c65f0034da312332a04
|
||||
guid: 67007ab205b2eb954dc17b52583c16de
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4fd1c7feee551e3fb3c553100e608cdc
|
||||
guid: ba7f1dbca374cb07b50da88925ac24b3
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: abea817e8e1c228856937787da6f9bb3
|
||||
guid: 0cd2ea70aa07f49d0a0d736814e676ab
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c229c8f52e38f65797e2fb7933728798
|
||||
guid: 65ca8d680cbf7f7cc2e7170a8ffb5ba2
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5c8c15da0e4c985ebeababebd9719b3b
|
||||
guid: 141c59d89d03e83e70d10dc4e5723a2b
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b9a2a1021cf2e3fbb8bf9ccd1b8df740
|
||||
guid: d026b2f254416fd1f156962f6d3e25ad
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3651ec780ef13269f3bca116f8165d2c
|
||||
guid: ca5a26aaeb1543f18a20efb33d89899f
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c515019f279b2e7599d05aee5ef790c0
|
||||
guid: 8235f05329c25dce2c0df23d9a820215
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3d60643fc1ccfcc083abc7f5fa675a00
|
||||
guid: 97708730d2d8ce7b5ecc5e411cd60884
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0dc2b47db8fbe87e61b8f45236ecfe85
|
||||
guid: a4dc79aaa40be42d53780391fe5c22f6
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 78fbb96db633f811889861c7538a42b6
|
||||
guid: 2fb71cac8215d1a1822cb59b001eb221
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3c8179f3462c2cb579f55afb04f0801a
|
||||
guid: 4157c24bf242a5eee840a29046ca9f05
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ce9c4302811ef1dcab7cdbd876598cc2
|
||||
guid: c5d3de71a56b91a00e7d7fb18ec68c50
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d697c57e09e59818b3eb933f3524b8c5
|
||||
guid: e637429a4a69ef2037ca01068740bb7d
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a17536beeced769885e3b9dc2c13dc2f
|
||||
guid: 885baf7d0ba8924221ebeff5db6d16d5
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f28cf9dd3e131462b2b0e9e7a31cb701
|
||||
guid: f5975d632cc3be46d349c52482746acd
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e1d89234282ddf6bfe8bd00bfddf1f2c
|
||||
guid: bd844d23c5a0818b677583fca0864033
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fe9d256369d1807bcffb3dae133babf9
|
||||
guid: 2c0a66d328711ec2fe2eb044d5f36f01
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 94ed82654b30d028f0553241bf3d4b0a
|
||||
guid: 4a86e1c26dbdae5cb7fb10c1844ec183
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: de968f265005b35d6afa59d56bec7a3f
|
||||
guid: ec8f2372257dc0a218037035d936f8b2
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: db396d998dee9b70254a2481740bbd94
|
||||
guid: 1b1878a99fd60e4bc0ed715528f1f4fc
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1f25f6cdad82160df7bff310ed88fa98
|
||||
guid: 735496f79e37c76ca93289efc08e9758
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ce704aa8bd61e6376697e6937a615ba2
|
||||
guid: e9c4313c7579059ef044f99a52267eee
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 04fca14bc14b57e2782e1d33e63570d7
|
||||
guid: 21027684c6d3b6cb65256dd1d663c8eb
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 185286c1a861812616da36a0f3b005e9
|
||||
guid: 4b8821f67c97d9b8618fd46af8fdd9a8
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a9542fb4e9f4991af534cce66d2143f1
|
||||
guid: ea1e169f706f322c1adc94e06809d25d
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 03cb7812777041d924d1e7ab5bb1713e
|
||||
guid: 25aa57051b6ed70ab579854194d3fdb3
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b00dcbbe22d4056a735dc7118432128d
|
||||
guid: 0e9bfa4d5787c0b17409fe42463e9d27
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b7646b441764c20cc36ca2c20dd35ef8
|
||||
guid: 6ec4bf21e6e199b89b7c5a3bf371dfbc
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a320e390456e0ba9965976b2ca0590f0
|
||||
guid: edd8e55ad643bec6e6d29eb5bed66d89
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ad5eec92e9c47650ff9dfdd07354d33b
|
||||
guid: 5b548477e77727c13af813c81ad53630
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: efb036690a31ae09e06b713eb53843ac
|
||||
guid: 77866b4d147e5acae3200139a1b6fcc5
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f3767acd0b2e0e6a7957f8b77c634e62
|
||||
guid: b985a86f4a17077fc5c81fb11510014f
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 44ca441a3072374b4b1f8a0364609017
|
||||
guid: 5504ae91403232b2d1ff4baad6bbb83e
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 544d73265343fe62c016e6104bc94ee3
|
||||
guid: c3c6c58b08181264d637f2cef62e0cca
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 15211d51bab56ee29a8e4977f0e105ba
|
||||
guid: c5b91eb91bf0bbf8248ed40861323242
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 37730d904df50799a9d0f7125973c7eb
|
||||
guid: eff80c8f3520635e69b082cdc6b0a36f
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2a71d12d01472d382f98f1ac8ef123d9
|
||||
guid: 53d926b04e3034bd8905c8455e3daebf
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e424d1ef27fc87dd635cad6cc6509c05
|
||||
guid: fd0e6ead36c4f5e46d509ff18de6dd6e
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 83e05a9a44832033a5410c2aff580d9e
|
||||
guid: 7168ac8802508921284018cc05397405
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1302ca081129e0cfedc41a8a26462ab7
|
||||
guid: be0e5c1e6bc937cdc0b9c125a76ff9a1
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e382d4f8d406f196a6b0db84c1203351
|
||||
guid: a1d0b895d99902f21ec725e4b9b96863
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 72900ef0406abe836b51f7271da09d1b
|
||||
guid: 4deb7b6e92fdbcdf17ae7e4a87e9a841
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0f459fbed083ff14facb1f61a09f5521
|
||||
guid: e249e88323c4b60c56dfb32c273e4876
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a9cdf8b5baad2063ba744049b305c7d1
|
||||
guid: d13132e966ccaac249e9f793057e1e1c
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 196b0f2db6409ec7e04d2e074be0fc30
|
||||
guid: 3e2ad7c238860db8405130efc2834e5f
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a9577975232bacfd5e91c7461bfbf472
|
||||
guid: 3cb9c3960fc84b76b0cd0bc7429f8e9f
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 79c9470221840ee593ecf4cb30b38165
|
||||
guid: bb8aec0c79d8416dcf7983932d1e9985
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 03a1d81a509a8f6f51374d7f02a76508
|
||||
guid: 03c40e4cf40e997f53aacf7525e0e93d
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 73d342ee596d6e0f3f86726bf521fc8f
|
||||
guid: d09ca577f79ebdd47bf2d867040c5d42
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a4af6273f6f5efbbb662e3116401e11d
|
||||
guid: e17d2f2f2df79d0cee875539bd954cf3
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9ed62f4a839a318d88267ca84d992396
|
||||
guid: 88bd87183e71e487ef0ad11c2dc6d186
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9b2a47722d66aa86e2adc9240d15eb11
|
||||
guid: 322b7cca17ad2c6d0dff2e0ab9acd1d2
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c19f859bccfabfa152ff48074e7a4b78
|
||||
guid: 9a2f0e821b4197bf47500d62f430b560
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 25258c55963d575af5b7cf535aa1c5bf
|
||||
guid: c1aa8c3a9c54f6bad6b4475c6bfbd9a8
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 804a8cef09550c9cb05dace71bcca216
|
||||
guid: fa4b80e934920aa96d363e2a762e3638
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1bf22a94e7bb81e982a99f63f3e0bc80
|
||||
guid: 5fe9c41b9f0f28c937198ce71f6d9171
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e5ee591d71d26d1aa8d853862c1ef4ab
|
||||
guid: 30ba258eaed477a1d4acdbbf89f44462
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1cfa82f90690223fc87d32c6166b6db5
|
||||
guid: 63d38d11518730067123b53673fa404c
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3e8aa215a338c9f80f1048d91e547748
|
||||
guid: f0040513dc3674c7edb2b40341fb28ac
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: aae2fedf1509d384ab81cf572753fbe6
|
||||
guid: 1d2821659f8a9c181116aee31d626529
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1342f780b6ec2fdb02e624816b0de4e5
|
||||
guid: b887b90a064bfd8c8dfdb046a1b9afd9
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c286b26085c53554070b7433881cbe2c
|
||||
guid: 7c37b9ddb2fd2e11a37e2b2fdb5cc9da
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4143c5c330f23974bd6295c567ace6cc
|
||||
guid: b8d2aac6a28e27a7b94296371c795974
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: af41ac9d3ad2cd52470b3c0ba1d3ee8f
|
||||
guid: af2d76f60f25fa6d19d1f24cd33a14e0
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6b9504fe0683f30ec97e8f28f7c1d8ef
|
||||
guid: 1e9f9150c831dffbded4978129cb6b23
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8a2acfb25db56e0cb37b3de38672b808
|
||||
guid: dfaf8f2392abf5ddaec8894756ee4520
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a37541e458abf95e2963dd000782e333
|
||||
guid: 5924d4344c82cf6f9a90d2f54c04fe67
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cffcbaa9683190d5f5f37a970f6aab85
|
||||
guid: 27b33b9d782f701c5a8a92edd7c4d2f8
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ddfc39a3db20864615690e5167b6b482
|
||||
guid: 1c3f239810efdc3c650b0e86782a4bd6
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f46b5a3b94dc26a16b72b5b7bd007433
|
||||
guid: 1a1e99b4d58af4228a1bbe84afacc717
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2567beed24dfd78969e96e1df1908760
|
||||
guid: 370e9f0e6ee955195ed10d964a0d7da3
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 29a1280c047675fccafefe29f18f501e
|
||||
guid: 9551392474782e96f7e3407412525525
|
||||
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