diff --git a/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TClassAndStruct.cs b/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TClassAndStruct.cs
index e0ac202..6afcd2f 100644
--- a/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TClassAndStruct.cs
+++ b/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TClassAndStruct.cs
@@ -10,11 +10,19 @@ namespace Tools.ExcelResolver.Editor
{
RealType = classType;
FieldWriteFormat = RealType.Name;
+ var fields = RealType.GetFields();
+ tType = new TType[fields.Length];
+ for (int i = 0; i < fields.Length; i++)
+ {
+ tType[i] = ExcelResolverUtil.GetTTypeByString(fields[i].FieldType.Name);
+ }
}
internal override Type RealType { get; }
internal override object DefaultValue => null;
internal override string FieldWriteFormat { get; }
+ private TType[] tType;
+
internal override bool String2TType(string typeText, out TType result)
{
result = null;
diff --git a/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TInt.cs b/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TInt.cs
index 06d2321..67577fd 100644
--- a/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TInt.cs
+++ b/Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TInt.cs
@@ -13,7 +13,8 @@ namespace Tools.ExcelResolver.Editor
internal override bool String2TType(string typeText, out TType result)
{
result = null;
- if (string.Equals(typeText, "int", StringComparison.OrdinalIgnoreCase))
+ if (string.Equals(typeText, "int", StringComparison.OrdinalIgnoreCase)
+ || string.Equals(typeText, "int32", StringComparison.OrdinalIgnoreCase))
{
result = new TInt(typeText);
return true;
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 5052885..0c882b4 100644
--- a/Assets/Unity-Tools/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.TType.cs
+++ b/Assets/Unity-Tools/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.TType.cs
@@ -80,6 +80,13 @@ namespace Tools.ExcelResolver.Editor
}
_classAndStructTypes ??= GetAllClassAndStruct();
+ foreach (var classAndStructType in _classAndStructTypes)
+ {
+ if (string.Equals(classAndStructType.Name, targetText, StringComparison.OrdinalIgnoreCase))
+ {
+ return Activator.CreateInstance(typeof(TClassAndStruct), targetText, classAndStructType) as TType;
+ }
+ }
throw new Exception($"type定义错误 " +
$"className: '{_currentClassName}' " +
diff --git a/Assets/_Project/Scripts/Generator/Excel/Test.cs b/Assets/_Project/Scripts/Generator/Excel/Test.cs
index 3aa368f..69f04af 100644
--- a/Assets/_Project/Scripts/Generator/Excel/Test.cs
+++ b/Assets/_Project/Scripts/Generator/Excel/Test.cs
@@ -28,6 +28,6 @@ namespace Tools.ExcelResolver
///
///
///
- public int item;
+ public Item item;
}
}