mirror of
https://github.com/wechat-miniprogram/minigame-tuanjie-transform-sdk.git
synced 2025-11-14 13:05:54 +08:00
Auto-publish.
This commit is contained in:
parent
06dd25fa65
commit
a24a069e0f
@ -5,134 +5,134 @@ using UnityEngine;
|
|||||||
|
|
||||||
namespace WeChatWASM
|
namespace WeChatWASM
|
||||||
{
|
{
|
||||||
public class WXPlayableConvertCore
|
public class WXPlayableConvertCore
|
||||||
|
{
|
||||||
|
static WXPlayableConvertCore() { }
|
||||||
|
public static WXPlayableEditorScriptObject config => UnityUtil.GetPlayableEditorConf();
|
||||||
|
|
||||||
|
public static WXConvertCore.WXExportError DoExport(bool buildWebGL = true)
|
||||||
{
|
{
|
||||||
static WXPlayableConvertCore() { }
|
WXConvertCore.isPlayableBuild = true;
|
||||||
public static WXPlayableEditorScriptObject config => UnityUtil.GetPlayableEditorConf();
|
// var preCheckResult = WXConvertCore.PreCheck();
|
||||||
|
// if (preCheckResult != WXConvertCore.WXExportError.SUCCEED)
|
||||||
|
// {
|
||||||
|
// WXConvertCore.isPlayableBuild = false;
|
||||||
|
// return preCheckResult;
|
||||||
|
// }
|
||||||
|
// WXConvertCore.PreInit();
|
||||||
|
var exportResult = WXConvertCore.DoExport();
|
||||||
|
|
||||||
public static WXConvertCore.WXExportError DoExport(bool buildWebGL = true)
|
WXConvertCore.isPlayableBuild = false;
|
||||||
|
return exportResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static WXEditorScriptObject GetFakeScriptObject()
|
||||||
|
{
|
||||||
|
return SetDefaultProperties(ConvertPlayableConfigToCommon(config));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static WXEditorScriptObject ConvertPlayableConfigToCommon(
|
||||||
|
WXPlayableEditorScriptObject source,
|
||||||
|
WXEditorScriptObject target = null)
|
||||||
|
{
|
||||||
|
// 创建或使用现有的目标实例
|
||||||
|
var newTarget = target ?? ScriptableObject.CreateInstance<WXEditorScriptObject>();
|
||||||
|
|
||||||
|
// 使用序列化方式深度拷贝公共字段
|
||||||
|
var so = new SerializedObject(newTarget);
|
||||||
|
|
||||||
|
// 遍历源对象的所有字段
|
||||||
|
var sourceType = source.GetType();
|
||||||
|
foreach (var sourceField in sourceType.GetFields(
|
||||||
|
System.Reflection.BindingFlags.Public |
|
||||||
|
System.Reflection.BindingFlags.Instance |
|
||||||
|
System.Reflection.BindingFlags.NonPublic))
|
||||||
|
{
|
||||||
|
// 跳过readonly字段
|
||||||
|
if (sourceField.IsInitOnly) continue;
|
||||||
|
|
||||||
|
// 查找目标对象中的对应字段
|
||||||
|
var targetField = typeof(WXEditorScriptObject).GetField(
|
||||||
|
sourceField.Name,
|
||||||
|
System.Reflection.BindingFlags.Public |
|
||||||
|
System.Reflection.BindingFlags.Instance |
|
||||||
|
System.Reflection.BindingFlags.NonPublic);
|
||||||
|
|
||||||
|
// if (targetField != null && !targetField.FieldType.IsValueType && !targetField.FieldType.IsEnum)
|
||||||
|
// {
|
||||||
|
// // // 复制字段值
|
||||||
|
// // var value = sourceField.GetValue(source);
|
||||||
|
// // targetField.SetValue(newTarget, value);
|
||||||
|
// // 递归复制子对象属性
|
||||||
|
// var subObj = targetField.GetValue(newTarget) ?? Activator.CreateInstance(targetField.FieldType);
|
||||||
|
// CopySubObjectProperties(value, subObj);
|
||||||
|
// targetField.SetValue(newTarget, subObj);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// if (targetField != null &&
|
||||||
|
// (targetField.FieldType.IsAssignableFrom(sourceField.FieldType) ||
|
||||||
|
// (targetField.FieldType.IsValueType && sourceField.FieldType.IsValueType &&
|
||||||
|
// targetField.FieldType == sourceField.FieldType)))
|
||||||
|
// {
|
||||||
|
// 复制字段值
|
||||||
|
var value = sourceField.GetValue(source);
|
||||||
|
// 特殊处理嵌套对象类型的字段
|
||||||
|
if (value != null && !targetField.FieldType.IsValueType && !targetField.FieldType.IsEnum)
|
||||||
|
{
|
||||||
|
// 递归复制子对象属性
|
||||||
|
var subObj = targetField.GetValue(newTarget) ?? Activator.CreateInstance(targetField.FieldType);
|
||||||
|
CopySubObjectProperties(value, subObj);
|
||||||
|
targetField.SetValue(newTarget, subObj);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
targetField.SetValue(newTarget, value);
|
||||||
|
}
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
// 应用修改到序列化对象
|
||||||
|
so.ApplyModifiedProperties();
|
||||||
|
return newTarget;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void CopySubObjectProperties(object source, object target)
|
||||||
|
{
|
||||||
|
var sourceType = source.GetType();
|
||||||
|
var targetType = target.GetType();
|
||||||
|
|
||||||
|
foreach (var sourceField in sourceType.GetFields(
|
||||||
|
System.Reflection.BindingFlags.Public |
|
||||||
|
System.Reflection.BindingFlags.Instance |
|
||||||
|
System.Reflection.BindingFlags.NonPublic))
|
||||||
{
|
{
|
||||||
WXConvertCore.isPlayableBuild = true;
|
if (sourceField.IsInitOnly) continue;
|
||||||
// var preCheckResult = WXConvertCore.PreCheck();
|
|
||||||
// if (preCheckResult != WXConvertCore.WXExportError.SUCCEED)
|
|
||||||
// {
|
|
||||||
// WXConvertCore.isPlayableBuild = false;
|
|
||||||
// return preCheckResult;
|
|
||||||
// }
|
|
||||||
// WXConvertCore.PreInit();
|
|
||||||
var exportResult = WXConvertCore.DoExport();
|
|
||||||
|
|
||||||
WXConvertCore.isPlayableBuild = false;
|
var targetField = targetType.GetField(
|
||||||
return exportResult;
|
sourceField.Name,
|
||||||
}
|
|
||||||
|
|
||||||
public static WXEditorScriptObject GetFakeScriptObject()
|
|
||||||
{
|
|
||||||
return SetDefaultProperties(ConvertPlayableConfigToCommon(config));
|
|
||||||
}
|
|
||||||
|
|
||||||
public static WXEditorScriptObject ConvertPlayableConfigToCommon(
|
|
||||||
WXPlayableEditorScriptObject source,
|
|
||||||
WXEditorScriptObject target = null)
|
|
||||||
{
|
|
||||||
// 创建或使用现有的目标实例
|
|
||||||
var newTarget = target ?? ScriptableObject.CreateInstance<WXEditorScriptObject>();
|
|
||||||
|
|
||||||
// 使用序列化方式深度拷贝公共字段
|
|
||||||
var so = new SerializedObject(newTarget);
|
|
||||||
|
|
||||||
// 遍历源对象的所有字段
|
|
||||||
var sourceType = source.GetType();
|
|
||||||
foreach (var sourceField in sourceType.GetFields(
|
|
||||||
System.Reflection.BindingFlags.Public |
|
System.Reflection.BindingFlags.Public |
|
||||||
System.Reflection.BindingFlags.Instance |
|
System.Reflection.BindingFlags.Instance |
|
||||||
System.Reflection.BindingFlags.NonPublic))
|
System.Reflection.BindingFlags.NonPublic);
|
||||||
|
|
||||||
|
if (targetField != null &&
|
||||||
|
(targetField.FieldType.IsAssignableFrom(sourceField.FieldType) ||
|
||||||
|
(targetField.FieldType.IsValueType && sourceField.FieldType.IsValueType &&
|
||||||
|
targetField.FieldType == sourceField.FieldType)))
|
||||||
{
|
{
|
||||||
// 跳过readonly字段
|
|
||||||
if (sourceField.IsInitOnly) continue;
|
|
||||||
|
|
||||||
// 查找目标对象中的对应字段
|
|
||||||
var targetField = typeof(WXEditorScriptObject).GetField(
|
|
||||||
sourceField.Name,
|
|
||||||
System.Reflection.BindingFlags.Public |
|
|
||||||
System.Reflection.BindingFlags.Instance |
|
|
||||||
System.Reflection.BindingFlags.NonPublic);
|
|
||||||
|
|
||||||
// if (targetField != null && !targetField.FieldType.IsValueType && !targetField.FieldType.IsEnum)
|
|
||||||
// {
|
|
||||||
// // // 复制字段值
|
|
||||||
// // var value = sourceField.GetValue(source);
|
|
||||||
// // targetField.SetValue(newTarget, value);
|
|
||||||
// // 递归复制子对象属性
|
|
||||||
// var subObj = targetField.GetValue(newTarget) ?? Activator.CreateInstance(targetField.FieldType);
|
|
||||||
// CopySubObjectProperties(value, subObj);
|
|
||||||
// targetField.SetValue(newTarget, subObj);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// if (targetField != null &&
|
|
||||||
// (targetField.FieldType.IsAssignableFrom(sourceField.FieldType) ||
|
|
||||||
// (targetField.FieldType.IsValueType && sourceField.FieldType.IsValueType &&
|
|
||||||
// targetField.FieldType == sourceField.FieldType)))
|
|
||||||
// {
|
|
||||||
// 复制字段值
|
|
||||||
var value = sourceField.GetValue(source);
|
var value = sourceField.GetValue(source);
|
||||||
// 特殊处理嵌套对象类型的字段
|
targetField.SetValue(target, value);
|
||||||
if (value != null && !targetField.FieldType.IsValueType && !targetField.FieldType.IsEnum)
|
|
||||||
{
|
|
||||||
// 递归复制子对象属性
|
|
||||||
var subObj = targetField.GetValue(newTarget) ?? Activator.CreateInstance(targetField.FieldType);
|
|
||||||
CopySubObjectProperties(value, subObj);
|
|
||||||
targetField.SetValue(newTarget, subObj);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
targetField.SetValue(newTarget, value);
|
|
||||||
}
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 应用修改到序列化对象
|
|
||||||
so.ApplyModifiedProperties();
|
|
||||||
return newTarget;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void CopySubObjectProperties(object source, object target)
|
|
||||||
{
|
|
||||||
var sourceType = source.GetType();
|
|
||||||
var targetType = target.GetType();
|
|
||||||
|
|
||||||
foreach (var sourceField in sourceType.GetFields(
|
|
||||||
System.Reflection.BindingFlags.Public |
|
|
||||||
System.Reflection.BindingFlags.Instance |
|
|
||||||
System.Reflection.BindingFlags.NonPublic))
|
|
||||||
{
|
|
||||||
if (sourceField.IsInitOnly) continue;
|
|
||||||
|
|
||||||
var targetField = targetType.GetField(
|
|
||||||
sourceField.Name,
|
|
||||||
System.Reflection.BindingFlags.Public |
|
|
||||||
System.Reflection.BindingFlags.Instance |
|
|
||||||
System.Reflection.BindingFlags.NonPublic);
|
|
||||||
|
|
||||||
if (targetField != null &&
|
|
||||||
(targetField.FieldType.IsAssignableFrom(sourceField.FieldType) ||
|
|
||||||
(targetField.FieldType.IsValueType && sourceField.FieldType.IsValueType &&
|
|
||||||
targetField.FieldType == sourceField.FieldType)))
|
|
||||||
{
|
|
||||||
var value = sourceField.GetValue(source);
|
|
||||||
targetField.SetValue(target, value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static WXEditorScriptObject SetDefaultProperties(WXEditorScriptObject target)
|
|
||||||
{
|
|
||||||
target.ProjectConf.CDN = "";
|
|
||||||
target.ProjectConf.assetLoadType = 1;
|
|
||||||
target.ProjectConf.compressDataPackage = true;
|
|
||||||
|
|
||||||
target.CompileOptions.showMonitorSuggestModal = false;
|
|
||||||
return target;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static WXEditorScriptObject SetDefaultProperties(WXEditorScriptObject target)
|
||||||
|
{
|
||||||
|
target.ProjectConf.CDN = "";
|
||||||
|
target.ProjectConf.assetLoadType = 1;
|
||||||
|
target.ProjectConf.compressDataPackage = true;
|
||||||
|
|
||||||
|
target.CompileOptions.showMonitorSuggestModal = false;
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -6,358 +6,354 @@ using UnityEngine;
|
|||||||
|
|
||||||
namespace WeChatWASM
|
namespace WeChatWASM
|
||||||
{
|
{
|
||||||
[InitializeOnLoad]
|
[InitializeOnLoad]
|
||||||
public class WXPlayableSettingsHelperInterface
|
public class WXPlayableSettingsHelperInterface
|
||||||
{
|
{
|
||||||
public static WXPlayableSettingsHelper helper = new WXPlayableSettingsHelper();
|
public static WXPlayableSettingsHelper helper = new WXPlayableSettingsHelper();
|
||||||
}
|
}
|
||||||
|
|
||||||
public class WXPlayableSettingsHelper
|
public class WXPlayableSettingsHelper
|
||||||
|
{
|
||||||
|
public static string projectRootPath;
|
||||||
|
private static WXPlayableEditorScriptObject config;
|
||||||
|
private static bool m_EnablePerfTool = false;
|
||||||
|
public static bool UseIL2CPP
|
||||||
{
|
{
|
||||||
public static string projectRootPath;
|
get
|
||||||
private static WXPlayableEditorScriptObject config;
|
{
|
||||||
private static bool m_EnablePerfTool = false;
|
|
||||||
|
|
||||||
private static string _dstCache;
|
|
||||||
public static bool UseIL2CPP
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
#if TUANJIE_2022_3_OR_NEWER
|
#if TUANJIE_2022_3_OR_NEWER
|
||||||
return PlayerSettings.GetScriptingBackend(BuildTargetGroup.WeixinMiniGame) == ScriptingImplementation.IL2CPP;
|
return PlayerSettings.GetScriptingBackend(BuildTargetGroup.WeixinMiniGame) == ScriptingImplementation.IL2CPP;
|
||||||
#else
|
#else
|
||||||
return true;
|
return true;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public WXPlayableSettingsHelper()
|
|
||||||
{
|
|
||||||
projectRootPath = System.IO.Path.GetFullPath(Application.dataPath + "/../");
|
|
||||||
_dstCache = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnFocus()
|
|
||||||
{
|
|
||||||
loadData();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnLostFocus()
|
|
||||||
{
|
|
||||||
saveData();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnDisable()
|
|
||||||
{
|
|
||||||
EditorUtility.SetDirty(config);
|
|
||||||
}
|
|
||||||
|
|
||||||
private Vector2 scrollRoot;
|
|
||||||
private bool foldBaseInfo = true;
|
|
||||||
private bool foldDebugOptions = true;
|
|
||||||
public void OnSettingsGUI(EditorWindow window)
|
|
||||||
{
|
|
||||||
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));
|
|
||||||
this.formInput("appid", "小游戏试玩AppID");
|
|
||||||
this.formInput("projectName", "小游戏试玩项目名");
|
|
||||||
this.formIntPopup("orientation", "游戏方向", new[] { "Portrait", "Landscape" }, new[] { 0, 1, 2, 3 });
|
|
||||||
this.formInput("memorySize", "UnityHeap预留内存(?)", "单位MB,预分配内存值,超休闲游戏256/中轻度496/重度游戏768,需预估游戏最大UnityHeap值以防止内存自动扩容带来的峰值尖刺。预估方法请查看GIT文档《优化Unity WebGL的内存》");
|
|
||||||
|
|
||||||
GUILayout.BeginHorizontal();
|
|
||||||
string targetDst = "dst";
|
|
||||||
if (!formInputData.ContainsKey(targetDst))
|
|
||||||
{
|
|
||||||
formInputData[targetDst] = "";
|
|
||||||
}
|
|
||||||
EditorGUILayout.LabelField(string.Empty, GUILayout.Width(10));
|
|
||||||
GUILayout.Label(new GUIContent("导出路径(?)", "支持输入相对于项目根目录的相对路径,如:wxbuild"), GUILayout.Width(140));
|
|
||||||
formInputData[targetDst] = GUILayout.TextField(formInputData[targetDst], GUILayout.MaxWidth(EditorGUIUtility.currentViewWidth - 270));
|
|
||||||
if (GUILayout.Button(new GUIContent("打开"), GUILayout.Width(40)))
|
|
||||||
{
|
|
||||||
if (!formInputData[targetDst].Trim().Equals(string.Empty))
|
|
||||||
{
|
|
||||||
EditorUtility.RevealInFinder(GetAbsolutePath(formInputData[targetDst]));
|
|
||||||
}
|
|
||||||
GUIUtility.ExitGUI();
|
|
||||||
}
|
|
||||||
if (GUILayout.Button(new GUIContent("选择"), GUILayout.Width(40)))
|
|
||||||
{
|
|
||||||
var dstPath = EditorUtility.SaveFolderPanel("选择你的游戏导出目录", string.Empty, string.Empty);
|
|
||||||
if (dstPath != string.Empty)
|
|
||||||
{
|
|
||||||
formInputData[targetDst] = dstPath;
|
|
||||||
this.saveData();
|
|
||||||
}
|
|
||||||
GUIUtility.ExitGUI();
|
|
||||||
}
|
|
||||||
GUILayout.EndHorizontal();
|
|
||||||
|
|
||||||
|
|
||||||
EditorGUILayout.EndVertical();
|
|
||||||
}
|
|
||||||
|
|
||||||
foldDebugOptions = EditorGUILayout.Foldout(foldDebugOptions, "调试编译选项");
|
|
||||||
if (foldDebugOptions)
|
|
||||||
{
|
|
||||||
EditorGUILayout.BeginVertical("frameBox", GUILayout.ExpandWidth(true));
|
|
||||||
this.formCheckbox("developBuild", "Development Build", "", false, null, OnDevelopmentBuildToggleChanged);
|
|
||||||
this.formCheckbox("il2CppOptimizeSize", "Il2Cpp Optimize Size(?)", "对应于Il2CppCodeGeneration选项,勾选时使用OptimizeSize(默认推荐),生成代码小15%左右,取消勾选则使用OptimizeSpeed。游戏中大量泛型集合的高频访问建议OptimizeSpeed,在使用HybridCLR等第三方组件时只能用OptimizeSpeed。(Dotnet Runtime模式下该选项无效)", !UseIL2CPP);
|
|
||||||
this.formCheckbox("profilingFuncs", "Profiling Funcs");
|
|
||||||
this.formCheckbox("webgl2", "WebGL2.0(beta)");
|
|
||||||
EditorGUILayout.EndVertical();
|
|
||||||
}
|
|
||||||
|
|
||||||
EditorGUILayout.EndScrollView();
|
|
||||||
}
|
|
||||||
public void OnBuildButtonGUI(EditorWindow window)
|
|
||||||
{
|
|
||||||
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;
|
|
||||||
EditorGUILayout.BeginHorizontal();
|
|
||||||
EditorGUILayout.LabelField(string.Empty, GUILayout.MinWidth(10));
|
|
||||||
if (GUILayout.Button(new GUIContent("生成并转换"), GUILayout.Width(100), GUILayout.Height(25)))
|
|
||||||
{
|
|
||||||
this.saveData();
|
|
||||||
if (WXPlayableConvertCore.DoExport() == WXConvertCore.WXExportError.SUCCEED)
|
|
||||||
{
|
|
||||||
window.ShowNotification(new GUIContent("转换完成"));
|
|
||||||
}
|
|
||||||
GUIUtility.ExitGUI();
|
|
||||||
}
|
|
||||||
EditorGUILayout.EndHorizontal();
|
|
||||||
}
|
|
||||||
private void OnDevelopmentBuildToggleChanged(bool InNewValue)
|
|
||||||
{
|
|
||||||
// 针对non-dev build,取消性能分析工具的集成
|
|
||||||
if (!InNewValue)
|
|
||||||
{
|
|
||||||
this.setData("enablePerfAnalysis", false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private string SDKFilePath;
|
|
||||||
|
|
||||||
private void loadData()
|
|
||||||
{
|
|
||||||
SDKFilePath = Path.Combine(UnityUtil.GetWxSDKRootPath(), "Runtime", "wechat-playable-default", "unity-sdk", "index.js");
|
|
||||||
config = UnityUtil.GetPlayableEditorConf();
|
|
||||||
_dstCache = config.ProjectConf.DST;
|
|
||||||
|
|
||||||
this.setData("projectName", config.ProjectConf.projectName);
|
|
||||||
this.setData("appid", config.ProjectConf.Appid);
|
|
||||||
this.setData("orientation", (int)config.ProjectConf.Orientation);
|
|
||||||
this.setData("dst", _dstCache);
|
|
||||||
|
|
||||||
this.setData("developBuild", config.CompileOptions.DevelopBuild);
|
|
||||||
this.setData("il2CppOptimizeSize", config.CompileOptions.Il2CppOptimizeSize);
|
|
||||||
this.setData("profilingFuncs", config.CompileOptions.profilingFuncs);
|
|
||||||
this.setData("webgl2", config.CompileOptions.Webgl2);
|
|
||||||
this.setData("customNodePath", config.CompileOptions.CustomNodePath);
|
|
||||||
|
|
||||||
this.setData("memorySize", config.ProjectConf.MemorySize.ToString());
|
|
||||||
}
|
|
||||||
|
|
||||||
private void saveData()
|
|
||||||
{
|
|
||||||
config.ProjectConf.projectName = this.getDataInput("projectName");
|
|
||||||
config.ProjectConf.Appid = this.getDataInput("appid");
|
|
||||||
config.ProjectConf.Orientation = (WXScreenOritation)this.getDataPop("orientation");
|
|
||||||
_dstCache = this.getDataInput("dst");
|
|
||||||
config.ProjectConf.DST = _dstCache;
|
|
||||||
|
|
||||||
config.CompileOptions.DevelopBuild = this.getDataCheckbox("developBuild");
|
|
||||||
config.CompileOptions.Il2CppOptimizeSize = this.getDataCheckbox("il2CppOptimizeSize");
|
|
||||||
config.CompileOptions.profilingFuncs = this.getDataCheckbox("profilingFuncs");
|
|
||||||
config.CompileOptions.CustomNodePath = this.getDataInput("customNodePath");
|
|
||||||
config.CompileOptions.Webgl2 = this.getDataCheckbox("webgl2");
|
|
||||||
config.ProjectConf.MemorySize = int.Parse(this.getDataInput("memorySize"));
|
|
||||||
}
|
|
||||||
|
|
||||||
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>();
|
|
||||||
|
|
||||||
private string getDataInput(string target)
|
|
||||||
{
|
|
||||||
if (this.formInputData.ContainsKey(target))
|
|
||||||
return this.formInputData[target];
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
private int getDataPop(string target)
|
|
||||||
{
|
|
||||||
if (this.formIntPopupData.ContainsKey(target))
|
|
||||||
return this.formIntPopupData[target];
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
private bool getDataCheckbox(string target)
|
|
||||||
{
|
|
||||||
if (this.formCheckboxData.ContainsKey(target))
|
|
||||||
return this.formCheckboxData[target];
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void formCheckbox(string target, string label, string help = null, bool disable = false, Action<bool> setting = null, Action<bool> onValueChanged = 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);
|
|
||||||
|
|
||||||
// Toggle the checkbox value based on the disable condition
|
|
||||||
bool newValue = EditorGUILayout.Toggle(disable ? false : formCheckboxData[target]);
|
|
||||||
// Update the checkbox data if the value has changed and invoke the onValueChanged action
|
|
||||||
if (newValue != formCheckboxData[target])
|
|
||||||
{
|
|
||||||
formCheckboxData[target] = newValue;
|
|
||||||
onValueChanged?.Invoke(newValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (setting != null)
|
|
||||||
{
|
|
||||||
EditorGUILayout.LabelField("", GUILayout.Width(10));
|
|
||||||
// 配置按钮
|
|
||||||
if (GUILayout.Button(new GUIContent("设置"), 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 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 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
return Path.Combine(projectRootPath, path);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public WXPlayableSettingsHelper()
|
||||||
|
{
|
||||||
|
projectRootPath = System.IO.Path.GetFullPath(Application.dataPath + "/../");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnFocus()
|
||||||
|
{
|
||||||
|
loadData();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnLostFocus()
|
||||||
|
{
|
||||||
|
saveData();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnDisable()
|
||||||
|
{
|
||||||
|
EditorUtility.SetDirty(config);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Vector2 scrollRoot;
|
||||||
|
private bool foldBaseInfo = true;
|
||||||
|
private bool foldDebugOptions = true;
|
||||||
|
public void OnSettingsGUI(EditorWindow window)
|
||||||
|
{
|
||||||
|
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));
|
||||||
|
this.formInput("appid", "小游戏试玩AppID");
|
||||||
|
this.formInput("projectName", "小游戏试玩项目名");
|
||||||
|
this.formIntPopup("orientation", "游戏方向", new[] { "Portrait", "Landscape" }, new[] { 0, 1, 2, 3 });
|
||||||
|
this.formInput("memorySize", "UnityHeap预留内存(?)", "单位MB,预分配内存值,超休闲游戏256/中轻度496/重度游戏768,需预估游戏最大UnityHeap值以防止内存自动扩容带来的峰值尖刺。预估方法请查看GIT文档《优化Unity WebGL的内存》");
|
||||||
|
|
||||||
|
GUILayout.BeginHorizontal();
|
||||||
|
string targetDst = "dst";
|
||||||
|
if (!formInputData.ContainsKey(targetDst))
|
||||||
|
{
|
||||||
|
formInputData[targetDst] = "";
|
||||||
|
}
|
||||||
|
EditorGUILayout.LabelField(string.Empty, GUILayout.Width(10));
|
||||||
|
GUILayout.Label(new GUIContent("导出路径(?)", "支持输入相对于项目根目录的相对路径,如:wxbuild"), GUILayout.Width(140));
|
||||||
|
formInputData[targetDst] = GUILayout.TextField(formInputData[targetDst], GUILayout.MaxWidth(EditorGUIUtility.currentViewWidth - 270));
|
||||||
|
if (GUILayout.Button(new GUIContent("打开"), GUILayout.Width(40)))
|
||||||
|
{
|
||||||
|
if (!formInputData[targetDst].Trim().Equals(string.Empty))
|
||||||
|
{
|
||||||
|
EditorUtility.RevealInFinder(GetAbsolutePath(formInputData[targetDst]));
|
||||||
|
}
|
||||||
|
GUIUtility.ExitGUI();
|
||||||
|
}
|
||||||
|
if (GUILayout.Button(new GUIContent("选择"), GUILayout.Width(40)))
|
||||||
|
{
|
||||||
|
var dstPath = EditorUtility.SaveFolderPanel("选择你的游戏导出目录", string.Empty, string.Empty);
|
||||||
|
if (dstPath != string.Empty)
|
||||||
|
{
|
||||||
|
formInputData[targetDst] = dstPath;
|
||||||
|
this.saveData();
|
||||||
|
}
|
||||||
|
GUIUtility.ExitGUI();
|
||||||
|
}
|
||||||
|
GUILayout.EndHorizontal();
|
||||||
|
|
||||||
|
|
||||||
|
EditorGUILayout.EndVertical();
|
||||||
|
}
|
||||||
|
|
||||||
|
foldDebugOptions = EditorGUILayout.Foldout(foldDebugOptions, "调试编译选项");
|
||||||
|
if (foldDebugOptions)
|
||||||
|
{
|
||||||
|
EditorGUILayout.BeginVertical("frameBox", GUILayout.ExpandWidth(true));
|
||||||
|
this.formCheckbox("developBuild", "Development Build", "", false, null, OnDevelopmentBuildToggleChanged);
|
||||||
|
this.formCheckbox("il2CppOptimizeSize", "Il2Cpp Optimize Size(?)", "对应于Il2CppCodeGeneration选项,勾选时使用OptimizeSize(默认推荐),生成代码小15%左右,取消勾选则使用OptimizeSpeed。游戏中大量泛型集合的高频访问建议OptimizeSpeed,在使用HybridCLR等第三方组件时只能用OptimizeSpeed。(Dotnet Runtime模式下该选项无效)", !UseIL2CPP);
|
||||||
|
this.formCheckbox("profilingFuncs", "Profiling Funcs");
|
||||||
|
this.formCheckbox("webgl2", "WebGL2.0(beta)");
|
||||||
|
EditorGUILayout.EndVertical();
|
||||||
|
}
|
||||||
|
|
||||||
|
EditorGUILayout.EndScrollView();
|
||||||
|
}
|
||||||
|
public void OnBuildButtonGUI(EditorWindow window)
|
||||||
|
{
|
||||||
|
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;
|
||||||
|
EditorGUILayout.BeginHorizontal();
|
||||||
|
EditorGUILayout.LabelField(string.Empty, GUILayout.MinWidth(10));
|
||||||
|
if (GUILayout.Button(new GUIContent("生成并转换"), GUILayout.Width(100), GUILayout.Height(25)))
|
||||||
|
{
|
||||||
|
this.saveData();
|
||||||
|
if (WXPlayableConvertCore.DoExport() == WXConvertCore.WXExportError.SUCCEED)
|
||||||
|
{
|
||||||
|
window.ShowNotification(new GUIContent("转换完成"));
|
||||||
|
}
|
||||||
|
GUIUtility.ExitGUI();
|
||||||
|
}
|
||||||
|
EditorGUILayout.EndHorizontal();
|
||||||
|
}
|
||||||
|
private void OnDevelopmentBuildToggleChanged(bool InNewValue)
|
||||||
|
{
|
||||||
|
// 针对non-dev build,取消性能分析工具的集成
|
||||||
|
if (!InNewValue)
|
||||||
|
{
|
||||||
|
this.setData("enablePerfAnalysis", false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private string SDKFilePath;
|
||||||
|
|
||||||
|
private void loadData()
|
||||||
|
{
|
||||||
|
SDKFilePath = Path.Combine(UnityUtil.GetWxSDKRootPath(), "Runtime", "wechat-playable-default", "unity-sdk", "index.js");
|
||||||
|
config = UnityUtil.GetPlayableEditorConf();
|
||||||
|
|
||||||
|
this.setData("projectName", config.ProjectConf.projectName);
|
||||||
|
this.setData("appid", config.ProjectConf.Appid);
|
||||||
|
this.setData("orientation", (int)config.ProjectConf.Orientation);
|
||||||
|
this.setData("dst", config.ProjectConf.relativeDST);
|
||||||
|
|
||||||
|
this.setData("developBuild", config.CompileOptions.DevelopBuild);
|
||||||
|
this.setData("il2CppOptimizeSize", config.CompileOptions.Il2CppOptimizeSize);
|
||||||
|
this.setData("profilingFuncs", config.CompileOptions.profilingFuncs);
|
||||||
|
this.setData("webgl2", config.CompileOptions.Webgl2);
|
||||||
|
this.setData("customNodePath", config.CompileOptions.CustomNodePath);
|
||||||
|
|
||||||
|
this.setData("memorySize", config.ProjectConf.MemorySize.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void saveData()
|
||||||
|
{
|
||||||
|
config.ProjectConf.projectName = this.getDataInput("projectName");
|
||||||
|
config.ProjectConf.Appid = this.getDataInput("appid");
|
||||||
|
config.ProjectConf.Orientation = (WXScreenOritation)this.getDataPop("orientation");
|
||||||
|
config.ProjectConf.relativeDST = this.getDataInput("dst");
|
||||||
|
config.ProjectConf.DST = GetAbsolutePath(config.ProjectConf.relativeDST);
|
||||||
|
|
||||||
|
config.CompileOptions.DevelopBuild = this.getDataCheckbox("developBuild");
|
||||||
|
config.CompileOptions.Il2CppOptimizeSize = this.getDataCheckbox("il2CppOptimizeSize");
|
||||||
|
config.CompileOptions.profilingFuncs = this.getDataCheckbox("profilingFuncs");
|
||||||
|
config.CompileOptions.CustomNodePath = this.getDataInput("customNodePath");
|
||||||
|
config.CompileOptions.Webgl2 = this.getDataCheckbox("webgl2");
|
||||||
|
config.ProjectConf.MemorySize = int.Parse(this.getDataInput("memorySize"));
|
||||||
|
}
|
||||||
|
|
||||||
|
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>();
|
||||||
|
|
||||||
|
private string getDataInput(string target)
|
||||||
|
{
|
||||||
|
if (this.formInputData.ContainsKey(target))
|
||||||
|
return this.formInputData[target];
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
private int getDataPop(string target)
|
||||||
|
{
|
||||||
|
if (this.formIntPopupData.ContainsKey(target))
|
||||||
|
return this.formIntPopupData[target];
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool getDataCheckbox(string target)
|
||||||
|
{
|
||||||
|
if (this.formCheckboxData.ContainsKey(target))
|
||||||
|
return this.formCheckboxData[target];
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void formCheckbox(string target, string label, string help = null, bool disable = false, Action<bool> setting = null, Action<bool> onValueChanged = 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);
|
||||||
|
|
||||||
|
// Toggle the checkbox value based on the disable condition
|
||||||
|
bool newValue = EditorGUILayout.Toggle(disable ? false : formCheckboxData[target]);
|
||||||
|
// Update the checkbox data if the value has changed and invoke the onValueChanged action
|
||||||
|
if (newValue != formCheckboxData[target])
|
||||||
|
{
|
||||||
|
formCheckboxData[target] = newValue;
|
||||||
|
onValueChanged?.Invoke(newValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (setting != null)
|
||||||
|
{
|
||||||
|
EditorGUILayout.LabelField("", GUILayout.Width(10));
|
||||||
|
// 配置按钮
|
||||||
|
if (GUILayout.Button(new GUIContent("设置"), 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 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 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Path.Combine(projectRootPath, path);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -112,8 +112,7 @@ namespace WeChatWASM
|
|||||||
CheckBuildTarget();
|
CheckBuildTarget();
|
||||||
Init();
|
Init();
|
||||||
// 可能有顺序要求?如果没要求,可挪到此函数外
|
// 可能有顺序要求?如果没要求,可挪到此函数外
|
||||||
if (!isPlayableBuild)
|
if (!isPlayableBuild) {
|
||||||
{
|
|
||||||
ProcessWxPerfBinaries();
|
ProcessWxPerfBinaries();
|
||||||
}
|
}
|
||||||
MakeEnvForLuaAdaptor();
|
MakeEnvForLuaAdaptor();
|
||||||
@ -141,7 +140,7 @@ namespace WeChatWASM
|
|||||||
return WXExportError.BUILD_WEBGL_FAILED;
|
return WXExportError.BUILD_WEBGL_FAILED;
|
||||||
}
|
}
|
||||||
dynamic config = isPlayableBuild ? UnityUtil.GetPlayableEditorConf() : UnityUtil.GetEditorConf();
|
dynamic config = isPlayableBuild ? UnityUtil.GetPlayableEditorConf() : UnityUtil.GetEditorConf();
|
||||||
if (config.ProjectConf.DST == string.Empty)
|
if (config.ProjectConf.relativeDST == string.Empty)
|
||||||
{
|
{
|
||||||
Debug.LogError("请先配置游戏导出路径");
|
Debug.LogError("请先配置游戏导出路径");
|
||||||
return WXExportError.BUILD_WEBGL_FAILED;
|
return WXExportError.BUILD_WEBGL_FAILED;
|
||||||
@ -163,9 +162,7 @@ namespace WeChatWASM
|
|||||||
|
|
||||||
// 记录上次导出的brotliType
|
// 记录上次导出的brotliType
|
||||||
{
|
{
|
||||||
Debug.LogError("config.ProjectConf.DST: " + config.ProjectConf.DST);
|
|
||||||
var filePath = Path.Combine(config.ProjectConf.DST, miniGameDir, "unity-namespace.js");
|
var filePath = Path.Combine(config.ProjectConf.DST, miniGameDir, "unity-namespace.js");
|
||||||
Debug.LogError("filePath: " + filePath);
|
|
||||||
string content = string.Empty;
|
string content = string.Empty;
|
||||||
if (File.Exists(filePath))
|
if (File.Exists(filePath))
|
||||||
{
|
{
|
||||||
@ -690,8 +687,6 @@ namespace WeChatWASM
|
|||||||
{
|
{
|
||||||
UnityEngine.Debug.LogFormat("[Converter] Starting to adapt framework. Dst: " + config.ProjectConf.DST);
|
UnityEngine.Debug.LogFormat("[Converter] Starting to adapt framework. Dst: " + config.ProjectConf.DST);
|
||||||
|
|
||||||
Debug.LogError("config.ProjectConf.DST: " + config.ProjectConf.DST);
|
|
||||||
Debug.LogError("miniGameDir: " + Path.Combine(config.ProjectConf.DST, miniGameDir));
|
|
||||||
UnityUtil.DelectDir(Path.Combine(config.ProjectConf.DST, miniGameDir));
|
UnityUtil.DelectDir(Path.Combine(config.ProjectConf.DST, miniGameDir));
|
||||||
string text = String.Empty;
|
string text = String.Empty;
|
||||||
var target = "webgl.wasm.framework.unityweb.js";
|
var target = "webgl.wasm.framework.unityweb.js";
|
||||||
@ -1199,8 +1194,7 @@ namespace WeChatWASM
|
|||||||
|
|
||||||
public static void convertDataPackageJS()
|
public static void convertDataPackageJS()
|
||||||
{
|
{
|
||||||
if (!isPlayableBuild)
|
if (!isPlayableBuild) {
|
||||||
{
|
|
||||||
checkNeedRmovePackageParallelPreload();
|
checkNeedRmovePackageParallelPreload();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1656,8 +1650,7 @@ namespace WeChatWASM
|
|||||||
content = content.Replace("$unityVersion$", Application.unityVersion);
|
content = content.Replace("$unityVersion$", Application.unityVersion);
|
||||||
File.WriteAllText(Path.Combine(dst, "unity-sdk", "index.js"), content, Encoding.UTF8);
|
File.WriteAllText(Path.Combine(dst, "unity-sdk", "index.js"), content, Encoding.UTF8);
|
||||||
// content = File.ReadAllText(Path.Combine(Application.dataPath, "WX-WASM-SDK-V2", "Runtime", "wechat-default", "unity-sdk", "storage.js"), Encoding.UTF8);
|
// content = File.ReadAllText(Path.Combine(Application.dataPath, "WX-WASM-SDK-V2", "Runtime", "wechat-default", "unity-sdk", "storage.js"), Encoding.UTF8);
|
||||||
if (!isPlayableBuild)
|
if (!isPlayableBuild) {
|
||||||
{
|
|
||||||
content = File.ReadAllText(Path.Combine(UnityUtil.GetWxSDKRootPath(), "Runtime", defaultTemplateDir, "unity-sdk", "storage.js"), Encoding.UTF8);
|
content = File.ReadAllText(Path.Combine(UnityUtil.GetWxSDKRootPath(), "Runtime", defaultTemplateDir, "unity-sdk", "storage.js"), Encoding.UTF8);
|
||||||
var PreLoadKeys = config.PlayerPrefsKeys.Count > 0 ? JsonMapper.ToJson(config.PlayerPrefsKeys) : "[]";
|
var PreLoadKeys = config.PlayerPrefsKeys.Count > 0 ? JsonMapper.ToJson(config.PlayerPrefsKeys) : "[]";
|
||||||
content = content.Replace("'$PreLoadKeys'", PreLoadKeys);
|
content = content.Replace("'$PreLoadKeys'", PreLoadKeys);
|
||||||
@ -1963,8 +1956,7 @@ namespace WeChatWASM
|
|||||||
|
|
||||||
List<Rule> replaceList = new List<Rule>(replaceArrayList);
|
List<Rule> replaceList = new List<Rule>(replaceArrayList);
|
||||||
List<string> files = new List<string> { "game.js", "game.json", "project.config.json", "unity-namespace.js", "check-version.js", "unity-sdk/font/index.js" };
|
List<string> files = new List<string> { "game.js", "game.json", "project.config.json", "unity-namespace.js", "check-version.js", "unity-sdk/font/index.js" };
|
||||||
if (isPlayableBuild)
|
if (isPlayableBuild) {
|
||||||
{
|
|
||||||
files = new List<string> { "game.js", "game.json", "project.config.json", "unity-namespace.js", "check-version.js" };
|
files = new List<string> { "game.js", "game.json", "project.config.json", "unity-namespace.js", "check-version.js" };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -54,15 +54,11 @@ namespace WeChatWASM
|
|||||||
foldInstantGame = WXConvertCore.IsInstantGameAutoStreaming();
|
foldInstantGame = WXConvertCore.IsInstantGameAutoStreaming();
|
||||||
|
|
||||||
projectRootPath = System.IO.Path.GetFullPath(Application.dataPath + "/../");
|
projectRootPath = System.IO.Path.GetFullPath(Application.dataPath + "/../");
|
||||||
|
|
||||||
_dstCache = "";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static WXEditorScriptObject config;
|
private static WXEditorScriptObject config;
|
||||||
private static bool m_EnablePerfTool = false;
|
private static bool m_EnablePerfTool = false;
|
||||||
|
|
||||||
private static string _dstCache;
|
|
||||||
|
|
||||||
public void OnFocus()
|
public void OnFocus()
|
||||||
{
|
{
|
||||||
loadData();
|
loadData();
|
||||||
@ -394,7 +390,6 @@ namespace WeChatWASM
|
|||||||
// SDKFilePath = Path.Combine(Application.dataPath, "WX-WASM-SDK-V2", "Runtime", "wechat-default", "unity-sdk", "index.js");
|
// SDKFilePath = Path.Combine(Application.dataPath, "WX-WASM-SDK-V2", "Runtime", "wechat-default", "unity-sdk", "index.js");
|
||||||
SDKFilePath = Path.Combine(UnityUtil.GetWxSDKRootPath(), "Runtime", "wechat-default", "unity-sdk", "index.js");
|
SDKFilePath = Path.Combine(UnityUtil.GetWxSDKRootPath(), "Runtime", "wechat-default", "unity-sdk", "index.js");
|
||||||
config = UnityUtil.GetEditorConf();
|
config = UnityUtil.GetEditorConf();
|
||||||
_dstCache = config.ProjectConf.DST;
|
|
||||||
|
|
||||||
// Instant Game
|
// Instant Game
|
||||||
if (WXConvertCore.IsInstantGameAutoStreaming())
|
if (WXConvertCore.IsInstantGameAutoStreaming())
|
||||||
@ -436,7 +431,7 @@ namespace WeChatWASM
|
|||||||
this.setData("compressDataPackage", config.ProjectConf.compressDataPackage);
|
this.setData("compressDataPackage", config.ProjectConf.compressDataPackage);
|
||||||
this.setData("videoUrl", config.ProjectConf.VideoUrl);
|
this.setData("videoUrl", config.ProjectConf.VideoUrl);
|
||||||
this.setData("orientation", (int)config.ProjectConf.Orientation);
|
this.setData("orientation", (int)config.ProjectConf.Orientation);
|
||||||
this.setData("dst", _dstCache);
|
this.setData("dst", config.ProjectConf.relativeDST);
|
||||||
this.setData("bundleHashLength", config.ProjectConf.bundleHashLength.ToString());
|
this.setData("bundleHashLength", config.ProjectConf.bundleHashLength.ToString());
|
||||||
this.setData("bundlePathIdentifier", config.ProjectConf.bundlePathIdentifier);
|
this.setData("bundlePathIdentifier", config.ProjectConf.bundlePathIdentifier);
|
||||||
this.setData("bundleExcludeExtensions", config.ProjectConf.bundleExcludeExtensions);
|
this.setData("bundleExcludeExtensions", config.ProjectConf.bundleExcludeExtensions);
|
||||||
@ -513,8 +508,8 @@ namespace WeChatWASM
|
|||||||
config.ProjectConf.compressDataPackage = this.getDataCheckbox("compressDataPackage");
|
config.ProjectConf.compressDataPackage = this.getDataCheckbox("compressDataPackage");
|
||||||
config.ProjectConf.VideoUrl = this.getDataInput("videoUrl");
|
config.ProjectConf.VideoUrl = this.getDataInput("videoUrl");
|
||||||
config.ProjectConf.Orientation = (WXScreenOritation)this.getDataPop("orientation");
|
config.ProjectConf.Orientation = (WXScreenOritation)this.getDataPop("orientation");
|
||||||
_dstCache = this.getDataInput("dst");
|
config.ProjectConf.relativeDST = this.getDataInput("dst");
|
||||||
config.ProjectConf.DST = _dstCache;
|
config.ProjectConf.DST = GetAbsolutePath(config.ProjectConf.relativeDST);
|
||||||
config.ProjectConf.bundleHashLength = int.Parse(this.getDataInput("bundleHashLength"));
|
config.ProjectConf.bundleHashLength = int.Parse(this.getDataInput("bundleHashLength"));
|
||||||
config.ProjectConf.bundlePathIdentifier = this.getDataInput("bundlePathIdentifier");
|
config.ProjectConf.bundlePathIdentifier = this.getDataInput("bundlePathIdentifier");
|
||||||
config.ProjectConf.bundleExcludeExtensions = this.getDataInput("bundleExcludeExtensions");
|
config.ProjectConf.bundleExcludeExtensions = this.getDataInput("bundleExcludeExtensions");
|
||||||
|
|||||||
@ -2,7 +2,7 @@ namespace WeChatWASM
|
|||||||
{
|
{
|
||||||
public class WXPluginVersion
|
public class WXPluginVersion
|
||||||
{
|
{
|
||||||
public static string pluginVersion = "202506190943"; // 这一行不要改他,导出的时候会自动替换
|
public static string pluginVersion = "202506191010"; // 这一行不要改他,导出的时候会自动替换
|
||||||
}
|
}
|
||||||
|
|
||||||
public class WXPluginConf
|
public class WXPluginConf
|
||||||
|
|||||||
Binary file not shown.
@ -381,6 +381,11 @@
|
|||||||
视频url
|
视频url
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="F:WeChatWASM.WXProjectConf.relativeDST">
|
||||||
|
<summary>
|
||||||
|
导出路径(相对路径)
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="F:WeChatWASM.WXProjectConf.DST">
|
<member name="F:WeChatWASM.WXProjectConf.DST">
|
||||||
<summary>
|
<summary>
|
||||||
导出路径(绝对路径)
|
导出路径(绝对路径)
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 1b5e8dc29e9461f02116a0da03c6e359
|
guid: c88466f71b2313d083608c26f1d211d1
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: c366413716df1154dceddda2299d0355
|
guid: 993865b688e6214acc00ebf7f3d4f41e
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 3a89b743a17ebdcef56ee0df8759c59b
|
guid: 9ef7db9b6537695c62ce590407e76505
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: d5fc8a18be6a31ef41c9ab5a09d1628f
|
guid: ec9264ed44f7e61b00c8aaf809e6502a
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 544417a64bcb55d63d1e6557bba936f1
|
guid: 3dd71f741aa36ffb71e7dc9bd83d8ff8
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 8d409dee2cac9ac514ccac63ec5ddcb8
|
guid: b967eaae8f5b4aa7e990ab407bf1ee81
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 62912edcf007d67560a1cc1bb122cdd3
|
guid: e100eee76002bb9130f4d198d665abfe
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 88e0ae7584824278554065423494d702
|
guid: a67939cdd84de6d7227e538f3f07df47
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 292f4cb6e5598974351db1dbf5df2c6a
|
guid: a6a4b0e62acf7e0a7091167969edd1cc
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 6b89e6d38b48349290a8db35df81725c
|
guid: 514f4c5ebf40a6fe0417a5a60b874e5a
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 3fda3573dfd393d7fe4bf4503674cc75
|
guid: bc95d7bbb07bca1ed0f9974cf61ed1a6
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 99ef0ef7f3597909f7e6f546c749adfe
|
guid: 3622fd86ee5adaed7bbf581e5653765a
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: e1f89e98fa3277cbc3d69a8784507e54
|
guid: 6a1c9ca2251703bdc2ae803c2ec51cd3
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 131da2f474430ea06b66fbe5e490934e
|
guid: 1bf74421229cac05bc03a063ba660984
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: fa6248820ef2011fdaa06f4941f6cf6b
|
guid: 0661251ab90b96a848fcaa7b4053eac5
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 7c88d084bd44a1e65d20be0dc53daff1
|
guid: f79563e9bb9727ce8cb7efa4a121ceac
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 00e3d5c6362638e4379a500c562ef1f9
|
guid: cbf3b5c231349dbb102aa5a4e389461a
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: eec294a42422a98a761df78623b1cf30
|
guid: 158b8b534586ef15c64528dfe2620679
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: f63ee1def3adc6f6ebd708df5dff8b6b
|
guid: dc29d1e87a30484faf15c607d0022a10
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 137ac9641f51c96d676826d543f8e4bb
|
guid: 49928e7eef5306df175bd42bacdf36da
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: f7ab7729daf776e730a92dec577d7228
|
guid: bb7be514f16bd60ef087e62a8243acd7
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 82662883afa46b7ae44b9c37aa2920ec
|
guid: c1e597c04230f7ba834161a281157959
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 3b208b4830952af13cc6fd704b5f8eb5
|
guid: a4b394165a2e97dda3f042833ae991df
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: eac7ae8172fadba0e845547abd95ed34
|
guid: 0edecf4d18aa0cd6cf91c953db5929ba
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 8256ec6efef4fdd01b93e29dce0010c9
|
guid: 9803ca6c4894359c52d321c16bc25cad
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: abb57df08907e8c55db38c5151eb9eae
|
guid: 3b7c7b5d46ae31e6bd534e1eaf4f84b7
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: f6ab1ab579469438380caf70d28b8189
|
guid: 84e25aec23ad6454ee23a3b8143f7d0a
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 9590643837aba729f5f6ba18f5c361df
|
guid: f735535d89fd432027912080f891c254
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 35692e1735cd8ff66329184b300e3ec2
|
guid: daf9ee14a14414f50d7c781b9170aa2b
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 281d5b19ae147e51175b927fa91f46ea
|
guid: 9e6987413818376131b2ed704c89c6e0
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 8e3f996406247bab982806c9f829a1db
|
guid: 60dc20aa4703633738e69b4a6a594ea8
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: ee9bd7f1320549183abb01ba327679cd
|
guid: 1f372676f7b952caade404e37829cd85
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: e2146d8f7d84cc573b8dbbb270f7c54f
|
guid: 05fcf8bee02a1e47479ac6f84c405923
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 28a05a0dc1a2922b74375b5ddd87b4c5
|
guid: 50ae1b1b4db83a2c88a7fb24bc28c67a
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 8ed49be57a8666df7a6fd05a975648bd
|
guid: c6408adec9829239ff9cb1d520dbb183
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 688f91b8fa370b3d023dab35e8027512
|
guid: e6f68f59a26064394b6d63a3556911ae
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 243758bf5cf4c38dc46253eb6c61aba0
|
guid: 77e98b176daddeb7e9721bff9637236b
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: f13cea64a26303921e1d1df375825c64
|
guid: 1ab36eee0158100f3ceed34097c8a451
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: da76f9c8523cec294537fb74c882f40b
|
guid: 9d2861be70efde3e1a378b3e7ceb1fc1
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 7080fcf3c7ac098e886a594eee7dcdc6
|
guid: 802a7d23043f379ede731dace80bd195
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 73948a29e736420c7c800f9256adb509
|
guid: 6e9539ce839db35f7443b90df4be98ae
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: a958cbfadb53d51a20d1b8a7b99806a6
|
guid: 9f1a5a85746fcb3ed6437393607a12da
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 1f1586a7407b684aa17df2af28da3100
|
guid: adbab7e3fcfa6ac07bf9ade75590f623
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: c3b744b36e4f16d96bafd8d46dbdcda2
|
guid: 887baefb7a6da34609b312be7c897949
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 697bc8fd833cd0562af152e51a7286dd
|
guid: 6dc0a8bc85c54483f3529e4d80b6ce51
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 4eab4d95bf65054beab967094b793077
|
guid: 8e664a101db94c92be273ca9a9cd23bb
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: faf4192a95c3a12b76463acfbceb95d7
|
guid: d0d80bc60c2c0a86ddcca5adc7c89fdf
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 18c9b16412e8246d6e6ecc199c5ea648
|
guid: 4e3c7e7168c8d84d5b1837ae95adb33a
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 54e8a874a3897d508573e2540c2a7736
|
guid: 9ae0f78837a66e590539de3053a4f87f
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 508b5ce0f9edabdf5b3fc866e75929e6
|
guid: 846ab61d87c2689184a84ebee54ba661
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 9f15d215fe8ddf208bd27d822b9c088e
|
guid: 0c3e2ff6aa114f985f7bb989b4baeddd
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 1a5865d7d2ee5d1ff4f7fa65e3154900
|
guid: 33c10ad4b965ef6e91d56f5dc8749a7f
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 62eb9b7a24c236ed24a9af3096cc3510
|
guid: ceecde4de80729eebe2955e33531e615
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 51b046ed5129f54c47dc520c68dfd64e
|
guid: 4e293f67dc50600b31fdf1f6b438dbf2
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 656116f58e32a6aef0a364e2c4c21c34
|
guid: cac92024da7e29d62fadd44e30bf373c
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 306eead70ab42b5a61d1f6090330d3e9
|
guid: d8ee0f96ae3398a9087ec1a95c2d48fd
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 795f4db56f893f79c3cf66b91aea81de
|
guid: 3d05308e13fa7130f7f67fa98731316b
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: b6b670455705bbe2ddd0ce70293957e1
|
guid: a4b2c10ffded6d0dfb0375844e389a9c
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: e7b5f7a32f133268bc5607c258329b46
|
guid: b40bec7662a42936b97c2aa774788451
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 8eea7c97602963d2259e14152e4ed70c
|
guid: c3c477a1ad242cdf4ce365d74641f63a
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: ab6bd6a81e8212005adcc1aba80b46b8
|
guid: d932c1ab2a01ef9be42caf4d0ab52e3f
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: c7031fe555f37fef1a272e649e9ca4a6
|
guid: 696ba4698053b6192f7bd47feee260ba
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 730b5c9c87d2d58970650b5df0a49a6d
|
guid: f6dcc0e20d8228babf2a4db3951836f7
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 93c7403d8b5f4d7864b92ccc3ccd65c4
|
guid: 6552e01b184c65d8b981f48ea001c862
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 19f5489db947539dd23f9f9a835d5cb9
|
guid: 9fac5f4fdf93b8666f27b632b0582365
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 88f0aa554a8c7a282dc60f30ef6faf54
|
guid: 67ccd872beb15ace64e71d185069357a
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 4d5ce4f42cf45ca59bb1541bab94cb7b
|
guid: c1ba44d963ef44bfa55730cc4628375b
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: dc96fc96d11ad4a30afdeaf598e63199
|
guid: 6f61a53d4f7d9cbb674c4b4539fcd262
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 7e1b668ca69d4451aa88e5579ae04dfd
|
guid: 28e1519e09e9b549fc8d81286e3fa634
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 7c39ce0cfd076eeda6a5faade6bf6c10
|
guid: a54f2a54ed1afb85716f1889eb9ada13
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 61a3676a92a6af10a460f2f4d07ccd86
|
guid: 6fba3ff3a68146a6bfcc94e9b684518e
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 03a2e4bb54b0aa9c9d8c686b158ee8eb
|
guid: 9b97e5a1d7b0062924d3ce91de57ed8e
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 6d7dbfbff4af1a1a2e3f020134059211
|
guid: 7bdabb98db19b37f793765e155abcc90
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: a73a53fd321a4cb7fde8fd6d7c9adb67
|
guid: 35486f891748b95c5f48d1d4d1f0960f
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 9effae10b75e6f5e14894291f84785cf
|
guid: 52913df86cffd3a9b961161870c8356d
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 27a9535c787df502870ff591dcb337a4
|
guid: 1a4f2c646e31f26787e0b6c913df9ad5
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 8f3dc6b51b6432e28650f503b9373a76
|
guid: 68ab924aff7aa64f700b3d23050f39e5
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: e3a9a9a5c36d0416ba7851e2cddb989f
|
guid: ee27500ed1785278792516d89cdfac03
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: b17b261fb887e16a7e8b37c265c9ed1d
|
guid: 01ccb9cbf9046c7f45f65cb204c21128
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: fab0338242b570e459731515b5c37284
|
guid: cb2a383eb3dde89d8f063e0c025745ca
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: f47b43cb7ff12ca37c02c024dae7ac5f
|
guid: 289a8e3c154892a58c8a7612ff56226b
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 1e379e82b120d96db438d806a04de4bb
|
guid: fa293a3d6a882413f912a12312ffaa50
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 27e9e0a8d67509b2eada3b3f3657f52f
|
guid: ade89056bf1a6ec46bf96ea886f5ed9a
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: d641d7522615bf261faec71a9df906e9
|
guid: f68e0188365585c464fd568d79fcc08b
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: d16294fb072729b6f22ecf90f15be05a
|
guid: b2c23989d991b4660089cf13e9900389
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 1b510fac726d3181e0f3f0126ff4998e
|
guid: ddd17f87288a511e3c424a84179dd867
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: afb847d7672ec7a9732b39a1fcf68f0a
|
guid: 834a783aaba8826b8b3897eeadb8ff02
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 3ba16280dbe691d0457e719cdf7bce5a
|
guid: 3edd86e0cb62cd62dd144b7b78e5b750
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: a98239433f0de1c78b35788cc623ad7b
|
guid: 56892f3c67e1c4069f67133a4e15b29c
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 578948a20827126fefe565aa8d69847e
|
guid: de4b20ca670650ad412289640a0197ce
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
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