From a400221dbf61c509024f3effb0ab085e616e1b0e Mon Sep 17 00:00:00 2001 From: coffee <985942825@qq.com> Date: Sun, 19 Jan 2025 23:45:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0Vector3=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E5=92=8CVector2=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/ExcelResolver/Excel/hero.xlsx | Bin 10646 -> 10724 bytes Assets/ScriptableObject/Excel/Hero_1.asset | 2 ++ Assets/ScriptableObject/Excel/Hero_2.asset | 2 ++ Assets/Scripts/Generator/Excel/Hero.cs | 10 ++++++ .../ExcelResolver/Editor/Core/Types/TBool.cs | 10 +++--- .../ExcelResolver/Editor/Core/Types/TFloat.cs | 10 +++--- .../ExcelResolver/Editor/Core/Types/TInt.cs | 6 ++-- .../Editor/Core/Types/TString.cs | 5 ++- .../ExcelResolver/Editor/Core/Types/TType.cs | 2 +- .../Editor/Core/Types/TVector2.cs | 26 +++++++++++++++ .../Editor/Core/Types/TVector2.cs.meta | 3 ++ .../Editor/Core/Types/TVector3.cs | 31 ++++++++++++++++++ .../Editor/Core/Types/TVector3.cs.meta | 3 ++ .../Core/Util/ExcelResolverUtil.Cell.cs | 16 +++++++-- .../Core/Util/ExcelResolverUtil.TType.cs | 8 +++-- .../ExcelResolverEditorWindow.ReadExcel.cs | 6 ++-- 16 files changed, 111 insertions(+), 29 deletions(-) create mode 100644 Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TVector2.cs create mode 100644 Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TVector2.cs.meta create mode 100644 Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TVector3.cs create mode 100644 Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TVector3.cs.meta diff --git a/Assets/ExcelResolver/Excel/hero.xlsx b/Assets/ExcelResolver/Excel/hero.xlsx index 4175e8844dbfbcbc9351728815b128bf6eda7bdc..01d332d8116ca9a3b5f8e6de9ef5cc6cab233cf1 100644 GIT binary patch delta 4592 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 delta 4566 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 public float speed; + + /// + /// 位置 + /// + public UnityEngine.Vector3 pos; + + /// + /// 位置 + /// + public UnityEngine.Vector2 ches; } } diff --git a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TBool.cs b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TBool.cs index 217a832..1016604 100644 --- a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TBool.cs +++ b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TBool.cs @@ -8,15 +8,13 @@ namespace Tools.ExcelResolver.Editor internal override Type RealType => typeof(bool); - internal override bool TryParseFrom(string s, out object o) + internal override object TryParseFrom(string s) { - if (bool.TryParse(s, out var b)) + if (bool.TryParse(s, out var result)) { - o = b; - return true; + return result; } - o = null; - return false; + return null; } } } \ No newline at end of file diff --git a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TFloat.cs b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TFloat.cs index 4fb3ba5..a49730c 100644 --- a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TFloat.cs +++ b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TFloat.cs @@ -8,15 +8,13 @@ namespace Tools.ExcelResolver.Editor internal override Type RealType => typeof(float); - internal override bool TryParseFrom(string s, out object o) + internal override object TryParseFrom(string s) { - if (float.TryParse(s, out float f)) + if (float.TryParse(s, out float result)) { - o = f; - return true; + return result; } - o = null; - return false; + return null; } } } \ No newline at end of file diff --git a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TInt.cs b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TInt.cs index 28fa533..7de3765 100644 --- a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TInt.cs +++ b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TInt.cs @@ -8,11 +8,9 @@ namespace Tools.ExcelResolver.Editor internal override Type RealType => typeof(int); - internal override bool TryParseFrom(string s, out object o) + internal override object TryParseFrom(string s) { - var b = int.TryParse(s, out var i); - o = i; - return b; + return int.TryParse(s, out var result) ? result : null; } } } \ No newline at end of file diff --git a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TString.cs b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TString.cs index a20502f..322a9eb 100644 --- a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TString.cs +++ b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TString.cs @@ -8,10 +8,9 @@ namespace Tools.ExcelResolver.Editor internal override Type RealType => typeof(string); - internal override bool TryParseFrom(string s, out object o) + internal override object TryParseFrom(string s) { - o = s; - return true; + return s; } } } \ No newline at end of file diff --git a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TType.cs b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TType.cs index 1972cb7..65fc5ab 100644 --- a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TType.cs +++ b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TType.cs @@ -8,6 +8,6 @@ namespace Tools.ExcelResolver.Editor internal abstract Type RealType { get; } - internal abstract bool TryParseFrom(string s, out object o); + internal abstract object TryParseFrom(string s); } } \ No newline at end of file diff --git a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TVector2.cs b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TVector2.cs new file mode 100644 index 0000000..f9123e7 --- /dev/null +++ b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TVector2.cs @@ -0,0 +1,26 @@ +using System; +using UnityEngine; + +namespace Tools.ExcelResolver.Editor +{ + internal class TVector2 : TType + { + internal override string TypeName => "Vector2"; + + internal override Type RealType => typeof(Vector2); + + internal override object TryParseFrom(string s) + { + s = s[1..^1]; + var ss = s.Split(','); + if (ss.Length != 2) + { + return null; + } + else + { + return new Vector2(float.Parse(ss[0]), float.Parse(ss[1])); + } + } + } +} \ No newline at end of file diff --git a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TVector2.cs.meta b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TVector2.cs.meta new file mode 100644 index 0000000..3d2d80d --- /dev/null +++ b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TVector2.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 8530fa995a19447293fc42a0039cfd05 +timeCreated: 1737300368 \ No newline at end of file diff --git a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TVector3.cs b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TVector3.cs new file mode 100644 index 0000000..6f59d35 --- /dev/null +++ b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TVector3.cs @@ -0,0 +1,31 @@ +using System; +using UnityEngine; + +namespace Tools.ExcelResolver.Editor +{ + internal class TVector3 : TType + { + internal override string TypeName => "UnityEngine.Vector3"; + + internal override Type RealType => typeof(Vector3); + + internal override object TryParseFrom(string s) + { + if (!s.StartsWith("(") || !s.EndsWith(")")) + { + return null; + } + + s = s[1..^1]; + var ss = s.Split(','); + if (ss.Length != 3) + { + return null; + } + else + { + return new Vector3(float.Parse(ss[0]), float.Parse(ss[1]), float.Parse(ss[2])); + } + } + } +} \ No newline at end of file diff --git a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TVector3.cs.meta b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TVector3.cs.meta new file mode 100644 index 0000000..9c2ab92 --- /dev/null +++ b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TVector3.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 89de9bb14be34e109a1980caa0935411 +timeCreated: 1737299142 \ No newline at end of file diff --git a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.Cell.cs b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.Cell.cs index e1642aa..186de11 100644 --- a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.Cell.cs +++ b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.Cell.cs @@ -37,15 +37,25 @@ namespace Tools.ExcelResolver.Editor return values; } + /// + /// 将TType转换为C#对象 + /// + /// + /// + /// + /// + /// + /// internal static object ConvertCellValue(ExcelRange cell, T type, string className) where T : TType { - if (type.TryParseFrom(cell.Text, out var value)) + var result = type.TryParseFrom(cell.Text); + if (result != null) { - return value; + return result; } - throw new Exception($"单元格转换失败 FullAddress:'{cell.FullAddress}' Text:'{cell.Text}' className:'{className}'"); + throw new Exception($"单元格转换失败 FullAddress: {cell.FullAddress} Text: {cell.Text} className: {className}"); } /// diff --git a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.TType.cs b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.TType.cs index ce1d314..7e24c47 100644 --- a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.TType.cs +++ b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.TType.cs @@ -14,15 +14,17 @@ namespace Tools.ExcelResolver.Editor /// internal static TType GetTTypeByString(string typeText) { + typeText = typeText.ToLower(); + return typeText switch { "int" => new TInt(), "float" => new TFloat(), "string" => new TString(), "bool" => new TBool(), - // "Vector2" => typeof(Vector2), - // "Vector3" => typeof(Vector3), - // + "vector2" => new TVector2(), + "vector3" => new TVector3(), + // "List" => typeof(List), // "List" => typeof(List), // "List" => typeof(List), diff --git a/Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.ReadExcel.cs b/Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.ReadExcel.cs index 841a32a..54e1bc1 100644 --- a/Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.ReadExcel.cs +++ b/Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.ReadExcel.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.IO; using System.Linq; using OfficeOpenXml; @@ -139,8 +140,7 @@ namespace Tools.ExcelResolver.Editor { if (fieldDatas.Values.Count(f => f.varName == fieldData.varName) > 1) { - Debug.LogError($"'{classCodeData.className}'拥有相同的字段: {fieldData.varName}"); - return null; + throw new Exception($"'{classCodeData.className}'拥有相同的字段: {fieldData.varName}"); } }