From b9c9da8ba227c3f4ace9462d0ddfc846c7c6774c Mon Sep 17 00:00:00 2001 From: coffee <985942825@qq.com> Date: Sun, 26 Jan 2025 00:49:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9E=9A=E4=B8=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ExcelResolver/Editor/Core/Types/TBool.cs | 5 +-- .../ExcelResolver/Editor/Core/Types/TDict.cs | 11 ++++--- .../ExcelResolver/Editor/Core/Types/TEnum.cs | 31 ++++++++++++++++++ .../Editor/Core/Types/TEnum.cs.meta | 3 ++ .../ExcelResolver/Editor/Core/Types/TFloat.cs | 5 +-- .../ExcelResolver/Editor/Core/Types/TInt.cs | 5 +-- .../ExcelResolver/Editor/Core/Types/TList.cs | 5 +-- .../Editor/Core/Types/TString.cs | 5 +-- .../ExcelResolver/Editor/Core/Types/TType.cs | 1 - .../Editor/Core/Types/TVector2.cs | 5 +-- .../Editor/Core/Types/TVector3.cs | 10 ++---- .../Core/Util/ExcelResolverUtil.TType.cs | 27 +++++++++++++-- .../Core/Util/ExcelResolverUtil.Type.cs | 6 ++++ Assets/_Project/ExcelResolver/Excel/hero.xlsx | Bin 11014 -> 11060 bytes .../ScriptableObject/Excel/Hero_1.asset | 27 ++++++++++----- .../ScriptableObject/Excel/Hero_2.asset | 23 +++++++++---- .../ScriptableObject/Excel/Hero_3.asset | 23 +++++++++---- Assets/_Project/Scripts/ExcelResolverEnum.cs | 18 ++++++++++ .../Scripts/ExcelResolverEnum.cs.meta | 3 ++ .../_Project/Scripts/Generator/Excel/Hero.cs | 7 +++- 20 files changed, 172 insertions(+), 48 deletions(-) create mode 100644 Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TEnum.cs create mode 100644 Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TEnum.cs.meta create mode 100644 Assets/_Project/Scripts/ExcelResolverEnum.cs create mode 100644 Assets/_Project/Scripts/ExcelResolverEnum.cs.meta diff --git a/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TBool.cs b/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TBool.cs index bb00bb7..d2e2c90 100644 --- a/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TBool.cs +++ b/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TBool.cs @@ -4,14 +4,15 @@ namespace Tools.ExcelResolver.Editor { internal class TBool : TType { - public TBool(string typeText) : base(typeText) { } + public TBool() { } + public TBool(string typeText = null) : base(typeText) { } internal override Type RealType => typeof(bool); internal override object DefaultValue => false; internal override string FieldWriteFormat => "System.Boolean"; internal override bool String2TType(string typeText) { - return string.Equals(typeText, "bool", StringComparison.OrdinalIgnoreCase); + return string.Equals(typeText.Trim(), "bool", StringComparison.OrdinalIgnoreCase); } internal override object TryParseFrom(string cellText) diff --git a/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TDict.cs b/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TDict.cs index 5ccbdcb..618ed1b 100644 --- a/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TDict.cs +++ b/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TDict.cs @@ -6,13 +6,14 @@ namespace Tools.ExcelResolver.Editor { internal class TDict : TType { - public TDict(string typeText) : base(typeText) + public TDict() { } + public TDict(string typeText = null) : base(typeText) { String2TType(typeText); } - internal override Type RealType => typeof(Dictionary<,>).MakeGenericType(KeyType?.RealType ?? typeof(object), ValueType?.RealType ?? typeof(object)); - internal override string FieldWriteFormat => $"Dictionary<{KeyType?.RealType.Name ?? "object"}, {ValueType?.RealType.Name ?? "object"}>"; - internal override object DefaultValue => Activator.CreateInstance(typeof(Dictionary<,>).MakeGenericType(KeyType?.RealType ?? typeof(object), ValueType?.RealType ?? typeof(object))); + internal override Type RealType => typeof(Dictionary<,>).MakeGenericType(KeyType.RealType, ValueType.RealType); + internal override string FieldWriteFormat => $"Dictionary<{KeyType.RealType.Name}, {ValueType.RealType.Name}>"; + internal override object DefaultValue => Activator.CreateInstance(typeof(Dictionary<,>).MakeGenericType(KeyType.RealType, ValueType.RealType)); // 键和值的类型 internal TType KeyType { get; set; } @@ -21,7 +22,7 @@ namespace Tools.ExcelResolver.Editor internal override bool String2TType(string typeText) { var split = typeText.Split(',', StringSplitOptions.RemoveEmptyEntries); - if (split.Length != 3 || !string.Equals(split[0], "dict", StringComparison.OrdinalIgnoreCase)) + if (split.Length != 3 || !string.Equals(split[0].Trim(), "dict", StringComparison.OrdinalIgnoreCase)) { return false; } diff --git a/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TEnum.cs b/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TEnum.cs new file mode 100644 index 0000000..97d79e8 --- /dev/null +++ b/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TEnum.cs @@ -0,0 +1,31 @@ +using System; + +namespace Tools.ExcelResolver.Editor +{ + internal class TEnum : TType + { + public TEnum() { } + public TEnum(string typeText = null, Type enumType = null) : base(typeText) + { + RealType = enumType; + FieldWriteFormat = RealType.Name; + } + internal override Type RealType { get; } + internal override object DefaultValue => 0; + internal override string FieldWriteFormat { get; } + + internal override bool String2TType(string typeText) + { + return false; + } + + internal override object TryParseFrom(string cellText) + { + if (Enum.TryParse(RealType, cellText, true, out var result)) + { + return result; + } + return null; + } + } +} \ No newline at end of file diff --git a/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TEnum.cs.meta b/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TEnum.cs.meta new file mode 100644 index 0000000..34a375e --- /dev/null +++ b/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TEnum.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 47d4bdd2042649beb4d0f93fd4369ad8 +timeCreated: 1737819504 \ No newline at end of file diff --git a/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TFloat.cs b/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TFloat.cs index 972db93..b7c03b7 100644 --- a/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TFloat.cs +++ b/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TFloat.cs @@ -4,14 +4,15 @@ namespace Tools.ExcelResolver.Editor { internal class TFloat : TType { - public TFloat(string typeText) : base(typeText) { } + public TFloat() { } + public TFloat(string typeText = null) : base(typeText) { } internal override Type RealType => typeof(float); internal override object DefaultValue => 0.0f; internal override string FieldWriteFormat => "System.Single"; internal override bool String2TType(string typeText) { - return string.Equals(typeText, "float", StringComparison.OrdinalIgnoreCase); + return string.Equals(typeText.Trim(), "float", StringComparison.OrdinalIgnoreCase); } diff --git a/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TInt.cs b/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TInt.cs index 23b0330..9ed617c 100644 --- a/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TInt.cs +++ b/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TInt.cs @@ -4,14 +4,15 @@ namespace Tools.ExcelResolver.Editor { internal class TInt : TType { - public TInt(string typeText) : base(typeText) { } + public TInt() { } + public TInt(string typeText = null) : base(typeText) { } internal override Type RealType => typeof(int); internal override object DefaultValue => 0; internal override string FieldWriteFormat => "System.Int32"; internal override bool String2TType(string typeText) { - return string.Equals(typeText, "int", StringComparison.OrdinalIgnoreCase); + return string.Equals(typeText.Trim(), "int", StringComparison.OrdinalIgnoreCase); } internal override object TryParseFrom(string cellText) diff --git a/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TList.cs b/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TList.cs index ee5f0dc..afb7282 100644 --- a/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TList.cs +++ b/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TList.cs @@ -6,7 +6,8 @@ namespace Tools.ExcelResolver.Editor { internal class TList : TType { - public TList(string typeText) : base(typeText) + public TList() { } + public TList(string typeText = null) : base(typeText) { String2TType(typeText); } @@ -19,7 +20,7 @@ namespace Tools.ExcelResolver.Editor internal override bool String2TType(string typeText) { var split = typeText.Split(','); - if (split.Length < 2 || !split[0].StartsWith("list")) + if (split.Length < 2 || !split[0].StartsWith("list", StringComparison.OrdinalIgnoreCase)) { return false; } diff --git a/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TString.cs b/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TString.cs index 448c92d..8073857 100644 --- a/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TString.cs +++ b/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TString.cs @@ -4,14 +4,15 @@ namespace Tools.ExcelResolver.Editor { internal class TString : TType { - public TString(string typeText) : base(typeText) { } + public TString() { } + public TString(string typeText = null) : base(typeText) { } internal override Type RealType => typeof(string); internal override object DefaultValue => string.Empty; internal override string FieldWriteFormat => "System.string"; internal override bool String2TType(string typeText) { - return string.Equals(typeText, "string", StringComparison.OrdinalIgnoreCase); + return string.Equals(typeText.Trim(), "string", StringComparison.OrdinalIgnoreCase); } internal override object TryParseFrom(string cellText) diff --git a/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TType.cs b/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TType.cs index 6d3eebb..5af269d 100644 --- a/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TType.cs +++ b/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TType.cs @@ -28,7 +28,6 @@ namespace Tools.ExcelResolver.Editor /// internal abstract object TryParseFrom(string cellText); - internal TType(string typeText = null) { var type = typeText?.Split(',', StringSplitOptions.RemoveEmptyEntries); diff --git a/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TVector2.cs b/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TVector2.cs index 79ea3c1..38fe22e 100644 --- a/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TVector2.cs +++ b/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TVector2.cs @@ -5,14 +5,15 @@ namespace Tools.ExcelResolver.Editor { internal class TVector2 : TType { - public TVector2(string typeText) : base(typeText) { } + public TVector2() { } + public TVector2(string typeText = null) : base(typeText) { } internal override Type RealType => typeof(Vector2); internal override object DefaultValue => Vector2.zero; internal override string FieldWriteFormat => "Vector2"; internal override bool String2TType(string typeText) { - return string.Equals(typeText, "vector2", StringComparison.OrdinalIgnoreCase); + return string.Equals(typeText.Trim(), "vector2", StringComparison.OrdinalIgnoreCase); } internal override object TryParseFrom(string cellText) diff --git a/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TVector3.cs b/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TVector3.cs index e24ba21..dc01f74 100644 --- a/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TVector3.cs +++ b/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TVector3.cs @@ -5,23 +5,19 @@ namespace Tools.ExcelResolver.Editor { internal class TVector3 : TType { - public TVector3(string typeText) : base(typeText) { } + public TVector3() { } + public TVector3(string typeText = null) : base(typeText) { } internal override Type RealType => typeof(Vector3); internal override object DefaultValue => Vector3.zero; internal override string FieldWriteFormat => "Vector3"; internal override bool String2TType(string typeText) { - return string.Equals(typeText, "vector3", StringComparison.OrdinalIgnoreCase); + return string.Equals(typeText.Trim(), "vector3", StringComparison.OrdinalIgnoreCase); } internal override object TryParseFrom(string cellText) { - if (!cellText.StartsWith("(") || !cellText.EndsWith(")")) - { - return null; - } - cellText = cellText[1..^1]; var split = cellText.Split(','); if (split.Length != 3) diff --git a/Assets/Unity-Tools/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.TType.cs b/Assets/Unity-Tools/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.TType.cs index b0a6eb4..287c4d3 100644 --- a/Assets/Unity-Tools/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.TType.cs +++ b/Assets/Unity-Tools/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.TType.cs @@ -8,6 +8,7 @@ namespace Tools.ExcelResolver.Editor internal static partial class ExcelResolverUtil { private static TType[] _allTTypes; + private static Type[] _enumTypes; private static ExcelRange _currentCell; private static string _currentClassName; @@ -16,7 +17,21 @@ namespace Tools.ExcelResolver.Editor return Assembly.GetAssembly(typeof(TType)) .GetTypes() .Where(t => t.IsSubclassOf(typeof(TType)) && !t.IsAbstract) - .Select(t => Activator.CreateInstance(t, string.Empty) as TType) + .Select(t => Activator.CreateInstance(t) as TType) + .ToArray(); + } + + internal static Type[] GetAllEnumTypes() + { + return AppDomain.CurrentDomain.GetAssemblies() + .Where(a => a.GetName().Name + // is "UnityEngine" + is "Assembly-CSharp") + // or "Assembly-CSharp-firstpass" + // or "Assembly-CSharp-Editor" + // or "Assembly-CSharp-Editor-firstpass") + .SelectMany(a => a.GetTypes()) + .Where(t => t.IsEnum) .ToArray(); } @@ -29,7 +44,6 @@ namespace Tools.ExcelResolver.Editor { _currentCell = cell ?? _currentCell; _currentClassName = className ?? _currentClassName; - targetText = targetText.ToLower(); _allTTypes ??= GetAllTTypes(); foreach (var tType in _allTTypes) @@ -39,6 +53,15 @@ namespace Tools.ExcelResolver.Editor return Activator.CreateInstance(tType.GetType(), targetText) as TType; } } + + _enumTypes ??= GetAllEnumTypes(); + foreach (var enumType in _enumTypes) + { + if (string.Equals(enumType.Name, targetText, StringComparison.OrdinalIgnoreCase)) + { + return Activator.CreateInstance(typeof(TEnum), targetText, enumType) as TType; + } + } throw new Exception($"type定义错误 " + $"className: '{_currentClassName}' " + diff --git a/Assets/Unity-Tools/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.Type.cs b/Assets/Unity-Tools/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.Type.cs index f9c7bd4..4707ac6 100644 --- a/Assets/Unity-Tools/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.Type.cs +++ b/Assets/Unity-Tools/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.Type.cs @@ -3,6 +3,12 @@ using System.Collections.Generic; using System.Linq; using UnityEngine; +/* + * 此脚本与ExcelResolverUtil.TType.cs不同,TType是用来定义生成的代码的字段的(如id, name) + * 而此脚本是用来获取生成的代码的类(如Hero) + */ + + namespace Tools.ExcelResolver.Editor { internal static partial class ExcelResolverUtil diff --git a/Assets/_Project/ExcelResolver/Excel/hero.xlsx b/Assets/_Project/ExcelResolver/Excel/hero.xlsx index b851c0df4cec27cbe1263574b969cbc2e36b956b..97641349ccf420f8d06c75bc6e26c205c8ec5390 100644 GIT binary patch delta 2283 zcmV44gwcF;lu?)*W?@e{05{ zSPnQ0f+4QJGQljv4bZPUBHAMb?~wIEmn}eW3?)<`t-)kK@Q>GmuFRhUt`vWE%;9C+$&Rb#^rK3SVnCOm!IH=>Gf?})h}eTD-I}41gBgBvr4C2Wf_3Vq%w<~ z=>+$*W{)K^cIsB16(BCw>Gt(~Qv3GtwfX$oyd?Oy?$B+M9Up|}ve8|WgK{5TUd<*b z4TCW9gV-nGj1Wp<8U&Bc^GEYd*4;(55Ai=S_5UrwiuVD7?=IU@6JO$M zGPRl6eU`CoQvt++95VCu+aM#NMjmD#;>gnJ)2%*-i#-1P9tOr6O;Vpl6VtI;ra>c* z9sTG$F~5IXej1oY%1Lx20gLFw{6SOm^YqU@#u-aq(+j2C0EQ@?m>16Dk!`2mg@z=5 zwOC9eSUIsIBpkjbXFH7(N{&TP7}##B)w4t5N2XvHCBMVLPAA`^bLL$`8gW6A(138L zKfU;ITC%+#e~a&!kPP-(*7Kpnxmb~WPN!C1=z9rE*@;^o3vE$aeV0RfsO&TJYDAi5 zg(P{s#-D&VhRq%Pz~?`T?Un^mUh!mqS!QK%YI)JEiVqEP`ZndWYsy(TC!CnmaiPH1 z#Ga0iK6Ejc-bmf2!TJ3&ASi7tc233WFrZ5mq zYzziv*uZj{b_T_WFc_3!y?aG}+CsC!4Y@z3kj^i;%S9nn`2t2$z!BGz@pP(^I&2&Yn_XxUZ+L0#QxAgHZ>dkqBj^+^Lk zjeXWYs?I9Lfh*^K7)PQj;~+gAG!P`nOanoR%$p$#4FsvS)Id-zt7gc$4snt88w~_$ zztupH_B#y(X}{M%koHd+NTq#Y)n^T)l2Nfo{(Nh?TXp1pMWUrWT-5Ie4FqXF(?F20 z^Ew1|VNpl4k!VW|1c|nP(m;@CYYha6w$VUPx!Y#QP6I)@K4~C#bcIJ)qpng`36`?9 zD_Ir0^qOfaw@7eBi>xr$Kq@OJnfs7gJU`u$BcF5+{oWdLi3OP;tec+lCJ~=-#FH{NDH}YqZEM_x5^?i+fG?THrp$Ii`YHNV&xlg%TN~Y zsGpyyN)7UjiC2k1ApzRMY#>`RhpqgZS>>S)_M{(JTbCP&7j>(zsNpkk1)ClMas9F~IEfI&HV$4}w%)+hcz&M=w z%5N7qdQ-T-S{6LiPK@#L3mltr-WSTRu@RG)CNKU^IO#*hEb-xxU7W2aX3P?v5TECM z6lBYSB|po_9|NZU0kb{{J_-pa8sthi0ssKslZ6u~e|a+@Hb1&nDQSibed9Zwz7ZMM zRKEHW#-daDV zS`Vj!aMskFimhvy1w16I)70;5+_-#I*MvkYM3gh!)CXATYyQOxo)A(ie3@wKk(5cp zvP2N!e;A1hPcSQ#Hcw+Di)-4kM3Q0@iU?yFQ_HpOx)meBbS>arCYyTQ)wM1o54w1L z32Ik#-xI|5q;D9vi()9gi3b~~Me&e?L(h`FXPxPPY`NwlcK&%WsRrr!Y_UdM_V+g>?3QH#<4XcRxd6{&9P;^9s`0{y5tiXD<$+ ze~^#Hi|r4PPA7Z$_>Ue%FZwL-_B3Vf~-_c zw`>?S({anE0lO#~{I_eXc%S{>v&a>{5CP|th$cV*L6gZQGXZ6j{U(zIDr5OVUz3$5 zQ~@57>L)+}c#|tAFaeE|TqrgHw3Cx4EgL8r`LClO8EK0X&mfDK-LQ4U=IF6_ceYDgpMB&?!6tnUf7FAsn@R@T6e`002=C z000;O0000000031AOHXW#RQX(DixDoDlY+ClaDGz0!#~&kSZ0EUke43@G1}nizWa7 F002k3B#i(7 delta 2246 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 UE(??41QnARD-{M^CIA2c0QTb%Hvj+t diff --git a/Assets/_Project/ScriptableObject/Excel/Hero_1.asset b/Assets/_Project/ScriptableObject/Excel/Hero_1.asset index 04db849..5fdab6e 100644 --- a/Assets/_Project/ScriptableObject/Excel/Hero_1.asset +++ b/Assets/_Project/ScriptableObject/Excel/Hero_1.asset @@ -23,12 +23,18 @@ MonoBehaviour: SerializationNodes: - Name: attribute Entry: 7 - Data: 0|System.Collections.Generic.Dictionary`2[[System.Int32, mscorlib],[System.Int32, - mscorlib]], mscorlib + Data: 0|System.Collections.Generic.Dictionary`2[[Tools.ExcelResolver.Attribute, + Assembly-CSharp],[System.Int32, mscorlib]], mscorlib - Name: comparer Entry: 7 - Data: 1|System.Collections.Generic.GenericEqualityComparer`1[[System.Int32, - mscorlib]], mscorlib + Data: 1|System.Collections.Generic.EnumEqualityComparer`1[[Tools.ExcelResolver.Attribute, + Assembly-CSharp]], mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: - Name: Entry: 8 Data: @@ -40,7 +46,7 @@ MonoBehaviour: Data: - Name: $k Entry: 3 - Data: 1 + Data: 0 - Name: $v Entry: 3 Data: 500 @@ -52,7 +58,7 @@ MonoBehaviour: Data: - Name: $k Entry: 3 - Data: 2 + Data: 1 - Name: $v Entry: 3 Data: 300 @@ -70,8 +76,12 @@ MonoBehaviour: Data: 2|System.Collections.Generic.Dictionary`2[[System.Int32, mscorlib],[System.Single, mscorlib]], mscorlib - Name: comparer - Entry: 9 - Data: 1 + Entry: 7 + Data: 3|System.Collections.Generic.GenericEqualityComparer`1[[System.Int32, + mscorlib]], mscorlib + - Name: + Entry: 8 + Data: - Name: Entry: 12 Data: 2 @@ -119,3 +129,4 @@ MonoBehaviour: - {x: 1, y: 2} - {x: 1, y: 2} - {x: 1, y: 2} + color: 1 diff --git a/Assets/_Project/ScriptableObject/Excel/Hero_2.asset b/Assets/_Project/ScriptableObject/Excel/Hero_2.asset index d212261..5a31fc8 100644 --- a/Assets/_Project/ScriptableObject/Excel/Hero_2.asset +++ b/Assets/_Project/ScriptableObject/Excel/Hero_2.asset @@ -23,12 +23,18 @@ MonoBehaviour: SerializationNodes: - Name: attribute Entry: 7 - Data: 0|System.Collections.Generic.Dictionary`2[[System.Int32, mscorlib],[System.Int32, - mscorlib]], mscorlib + Data: 0|System.Collections.Generic.Dictionary`2[[Tools.ExcelResolver.Attribute, + Assembly-CSharp],[System.Int32, mscorlib]], mscorlib - Name: comparer Entry: 7 - Data: 1|System.Collections.Generic.GenericEqualityComparer`1[[System.Int32, - mscorlib]], mscorlib + Data: 1|System.Collections.Generic.EnumEqualityComparer`1[[Tools.ExcelResolver.Attribute, + Assembly-CSharp]], mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: - Name: Entry: 8 Data: @@ -46,8 +52,12 @@ MonoBehaviour: Data: 2|System.Collections.Generic.Dictionary`2[[System.Int32, mscorlib],[System.Single, mscorlib]], mscorlib - Name: comparer - Entry: 9 - Data: 1 + Entry: 7 + Data: 3|System.Collections.Generic.GenericEqualityComparer`1[[System.Int32, + mscorlib]], mscorlib + - Name: + Entry: 8 + Data: - Name: Entry: 12 Data: 0 @@ -67,3 +77,4 @@ MonoBehaviour: pos: {x: 0, y: 0, z: 0} ches: {x: 0, y: 0} attack_target: [] + color: 0 diff --git a/Assets/_Project/ScriptableObject/Excel/Hero_3.asset b/Assets/_Project/ScriptableObject/Excel/Hero_3.asset index 5b509d3..48718c7 100644 --- a/Assets/_Project/ScriptableObject/Excel/Hero_3.asset +++ b/Assets/_Project/ScriptableObject/Excel/Hero_3.asset @@ -23,12 +23,18 @@ MonoBehaviour: SerializationNodes: - Name: attribute Entry: 7 - Data: 0|System.Collections.Generic.Dictionary`2[[System.Int32, mscorlib],[System.Int32, - mscorlib]], mscorlib + Data: 0|System.Collections.Generic.Dictionary`2[[Tools.ExcelResolver.Attribute, + Assembly-CSharp],[System.Int32, mscorlib]], mscorlib - Name: comparer Entry: 7 - Data: 1|System.Collections.Generic.GenericEqualityComparer`1[[System.Int32, - mscorlib]], mscorlib + Data: 1|System.Collections.Generic.EnumEqualityComparer`1[[Tools.ExcelResolver.Attribute, + Assembly-CSharp]], mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: - Name: Entry: 8 Data: @@ -58,8 +64,12 @@ MonoBehaviour: Data: 2|System.Collections.Generic.Dictionary`2[[System.Int32, mscorlib],[System.Single, mscorlib]], mscorlib - Name: comparer - Entry: 9 - Data: 1 + Entry: 7 + Data: 3|System.Collections.Generic.GenericEqualityComparer`1[[System.Int32, + mscorlib]], mscorlib + - Name: + Entry: 8 + Data: - Name: Entry: 12 Data: 0 @@ -80,3 +90,4 @@ MonoBehaviour: ches: {x: 5, y: 12} attack_target: - {x: 1, y: 2} + color: 23 diff --git a/Assets/_Project/Scripts/ExcelResolverEnum.cs b/Assets/_Project/Scripts/ExcelResolverEnum.cs new file mode 100644 index 0000000..c29c4f7 --- /dev/null +++ b/Assets/_Project/Scripts/ExcelResolverEnum.cs @@ -0,0 +1,18 @@ +namespace Tools.ExcelResolver +{ + public enum CustomizeColor + { + yellow = 0, + red = 1, + green = 2, + blue = 3, + } + + public enum Attribute + { + hp = 0, + atk = 1, + speed = 2, + def = 3, + } +} \ No newline at end of file diff --git a/Assets/_Project/Scripts/ExcelResolverEnum.cs.meta b/Assets/_Project/Scripts/ExcelResolverEnum.cs.meta new file mode 100644 index 0000000..4a7b517 --- /dev/null +++ b/Assets/_Project/Scripts/ExcelResolverEnum.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 81d32f9fda7b4ebaaf639491e017be02 +timeCreated: 1737819941 \ No newline at end of file diff --git a/Assets/_Project/Scripts/Generator/Excel/Hero.cs b/Assets/_Project/Scripts/Generator/Excel/Hero.cs index 57ebe21..601cc38 100644 --- a/Assets/_Project/Scripts/Generator/Excel/Hero.cs +++ b/Assets/_Project/Scripts/Generator/Excel/Hero.cs @@ -73,11 +73,16 @@ namespace Tools.ExcelResolver /// /// /// - public Dictionary attribute; + public Dictionary attribute; /// /// 你好 /// public Dictionary nihao; + + /// + /// + /// + public CustomizeColor color; } }