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;
}
}