From 743745b8390bd404fb8499e4494f42ec3929da67 Mon Sep 17 00:00:00 2001 From: Soviby <936858871@qq.com> Date: Wed, 9 Oct 2024 00:32:08 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E6=9E=90layout.txt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Editor/EditorDefine.cs | 39 ++++++++++++++- Assets/Editor/Helper/CommandHelper.cs | 2 +- .../Editor/ScriptObject/CacheScriptObject.cs | 48 +++++++++++++++++-- Assets/Editor/Windows/PanelCacheWindow.cs | 2 +- 4 files changed, 84 insertions(+), 7 deletions(-) diff --git a/Assets/Editor/EditorDefine.cs b/Assets/Editor/EditorDefine.cs index 692c106..9b3191f 100644 --- a/Assets/Editor/EditorDefine.cs +++ b/Assets/Editor/EditorDefine.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using Unity.Mathematics; namespace UguiToolkit.Editor { @@ -17,4 +16,42 @@ namespace UguiToolkit.Editor public float rot; public float[] scale; } + + [Serializable] + public class LayoutJsonData + { + public LayoutInfoJsonData info; + public LayoutElementJsonData root; + } + + [Serializable] + public class LayoutInfoJsonData + { + public string version; + public CanvasInfoJsonData canvas; + + [Serializable] + public class CanvasInfoJsonData + { + public CanvasSizeJsonData size; + [Serializable] + public struct CanvasSizeJsonData + { + public float w; + public float h; + } + } + } + + [Serializable] + public class LayoutElementJsonData + { + public string type; + public string name; + public float x; + public float y; + public float w; + public float h; + public List element; + } } \ No newline at end of file diff --git a/Assets/Editor/Helper/CommandHelper.cs b/Assets/Editor/Helper/CommandHelper.cs index 52b877a..585733a 100644 --- a/Assets/Editor/Helper/CommandHelper.cs +++ b/Assets/Editor/Helper/CommandHelper.cs @@ -8,7 +8,7 @@ namespace UguiToolkit.Editor { public static class CommandHelper { - public static RotScaleJsonData CalcRotScale(in string srcImgDirPath, in string targetImgDirPath, Dictionary> rotScaleInfos) + public static RotScaleJsonData CalcRotScale(in string srcImgDirPath, in string targetImgDirPath, Dictionary> rotScaleInfos) { var rotScaleInfoFilePath = Path.GetFullPath(EditorConst.RotScaleInfoFilePath); var rotScaleInfoToolFilePath = Path.GetFullPath(EditorConst.RotScaleInfoToolFilePath); diff --git a/Assets/Editor/ScriptObject/CacheScriptObject.cs b/Assets/Editor/ScriptObject/CacheScriptObject.cs index 4bd3978..ea85935 100644 --- a/Assets/Editor/ScriptObject/CacheScriptObject.cs +++ b/Assets/Editor/ScriptObject/CacheScriptObject.cs @@ -35,14 +35,54 @@ namespace UguiToolkit.Editor } } - // 图片路径 -> 旋转缩放信息 - public Dictionary> rotScaleInfos = new(); + // 通过读取layout.txt 获得 position 图片路径(源图) -> Transform信息(效果图) + public Dictionary> targetImageTransformInfos = new(); + + // 通过cmd计算获得 图片路径(源图) -> 旋转缩放信息(效果图) + public Dictionary> rotScaleInfos = new(); } [Serializable] - public struct rotScaleInfoItem + public class LayoutInfo { - public string imgPath; + + + + public class ElementInfo + { + public float x; + public float y; + public float w; + public float h; + + + public float3 position; + } + + public class ImageInfo : ElementInfo + { + public string imgPath; + } + + public class TextInfo : ElementInfo + { + public string text; + } + } + + [Serializable] + public struct TargetImageTransformInfo + { + public float3 position; + public RotScaleInfoItem rotScaleInfo; + + public string ImgPath => rotScaleInfo.imgPath; + } + + [Serializable] + public struct RotScaleInfoItem + { + public string imgPath; //(效果图) public float rotiation; public float2 scale; } diff --git a/Assets/Editor/Windows/PanelCacheWindow.cs b/Assets/Editor/Windows/PanelCacheWindow.cs index 9631b09..eeb865e 100644 --- a/Assets/Editor/Windows/PanelCacheWindow.cs +++ b/Assets/Editor/Windows/PanelCacheWindow.cs @@ -51,7 +51,7 @@ namespace UguiToolkit.Editor.Windows var rotScaleInfos = panelCache.rotScaleInfos; foreach (var kv in jsonData.data) { - List rotScaleItemList = new(); + List rotScaleItemList = new(); rotScaleInfos[kv.Key] = rotScaleItemList; foreach (var jsonItemData in kv.Value) {