Browse Source

使用字符串生成脚本字段

master
coffee 5 months ago
parent
commit
1881b0d357
  1. BIN
      Assets/ExcelResolver/Excel/hero.xlsx
  2. 1
      Assets/ScriptableObject/Excel/Hero_1.asset
  3. 1
      Assets/ScriptableObject/Excel/Hero_2.asset
  4. 1
      Assets/ScriptableObject/Excel/Hero_3.asset
  5. 9
      Assets/Scripts/Generator/Excel/Hero.cs
  6. 2
      Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Data/FieldData.cs
  7. 10
      Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TBool.cs
  8. 4
      Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TFloat.cs
  9. 4
      Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TInt.cs
  10. 18
      Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TList.cs
  11. 4
      Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TString.cs
  12. 2
      Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TType.cs
  13. 10
      Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TVector2.cs
  14. 10
      Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TVector3.cs

BIN
Assets/ExcelResolver/Excel/hero.xlsx

Binary file not shown.

1
Assets/ScriptableObject/Excel/Hero_1.asset

@ -15,6 +15,7 @@ MonoBehaviour:
id: 1 id: 1
name: "\u9053\u58EB" name: "\u9053\u58EB"
icon: hero_1 icon: hero_1
has: 0
hp: 100 hp: 100
atk: 20 atk: 20
speed: 1.2 speed: 1.2

1
Assets/ScriptableObject/Excel/Hero_2.asset

@ -15,6 +15,7 @@ MonoBehaviour:
id: 2 id: 2
name: "\u6218\u58EB" name: "\u6218\u58EB"
icon: hero_2 icon: hero_2
has: 1
hp: 150 hp: 150
atk: 15 atk: 15
speed: 1 speed: 1

1
Assets/ScriptableObject/Excel/Hero_3.asset

@ -15,6 +15,7 @@ MonoBehaviour:
id: 2 id: 2
name: "\u5973\u5DEB" name: "\u5973\u5DEB"
icon: hero_3 icon: hero_3
has: 0
hp: 80 hp: 80
atk: 8 atk: 8
speed: 1.1 speed: 1.1

9
Assets/Scripts/Generator/Excel/Hero.cs

@ -34,6 +34,11 @@ namespace Tools.ExcelResolver
/// </summary> /// </summary>
public string icon; public string icon;
/// <summary>
/// 有宠物
/// </summary>
public bool has;
/// <summary> /// <summary>
/// 血量 /// 血量
/// </summary> /// </summary>
@ -52,11 +57,11 @@ namespace Tools.ExcelResolver
/// <summary> /// <summary>
/// 位置 /// 位置
/// </summary> /// </summary>
public UnityEngine.Vector3 pos; public Vector3 pos;
/// <summary> /// <summary>
/// 位置 /// 位置
/// </summary> /// </summary>
public UnityEngine.Vector2 ches; public Vector2 ches;
} }
} }

2
Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Data/FieldData.cs

@ -21,7 +21,7 @@ namespace Tools.ExcelResolver.Editor
{ {
Attributes = MemberAttributes.Public, Attributes = MemberAttributes.Public,
Name = varName, Name = varName,
Type = new CodeTypeReference(type.RealType), Type = new CodeTypeReference(type.FieldWriteFormat),
Comments = Comments =
{ {
new CodeCommentStatement("<summary>", true), new CodeCommentStatement("<summary>", true),

10
Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TBool.cs

@ -4,11 +4,11 @@ namespace Tools.ExcelResolver.Editor
{ {
internal class TBool : TType internal class TBool : TType
{ {
internal override string TypeName => "bool"; internal override string FieldWriteFormat => "System.Boolean";
internal override bool String2TType(string typeText) internal override bool String2TType(string typeText)
{ {
return string.Equals(typeText, TypeName, StringComparison.OrdinalIgnoreCase); return string.Equals(typeText, "bool", StringComparison.OrdinalIgnoreCase);
} }
internal override Type RealType => typeof(bool); internal override Type RealType => typeof(bool);
@ -19,6 +19,12 @@ namespace Tools.ExcelResolver.Editor
{ {
return result; return result;
} }
if (cellText is "1")
{
return true;
}
return null; return null;
} }
} }

4
Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TFloat.cs

@ -4,11 +4,11 @@ namespace Tools.ExcelResolver.Editor
{ {
internal class TFloat : TType internal class TFloat : TType
{ {
internal override string TypeName => "float"; internal override string FieldWriteFormat => "System.Single";
internal override bool String2TType(string typeText) internal override bool String2TType(string typeText)
{ {
return string.Equals(typeText, TypeName, StringComparison.OrdinalIgnoreCase); return string.Equals(typeText, "float", StringComparison.OrdinalIgnoreCase);
} }
internal override Type RealType => typeof(float); internal override Type RealType => typeof(float);

4
Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TInt.cs

@ -4,11 +4,11 @@ namespace Tools.ExcelResolver.Editor
{ {
internal class TInt : TType internal class TInt : TType
{ {
internal override string TypeName => "int"; internal override string FieldWriteFormat => "System.Int32";
internal override bool String2TType(string typeText) internal override bool String2TType(string typeText)
{ {
return string.Equals(typeText, TypeName, StringComparison.OrdinalIgnoreCase); return string.Equals(typeText, "int", StringComparison.OrdinalIgnoreCase);
} }
internal override Type RealType => typeof(int); internal override Type RealType => typeof(int);

18
Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TList.cs

@ -5,13 +5,25 @@ namespace Tools.ExcelResolver.Editor
{ {
internal class TList : TType internal class TList : TType
{ {
internal override string TypeName => "list"; internal override string FieldWriteFormat => "List<int>";
internal override bool String2TType(string typeText) internal override bool String2TType(string typeText)
{ {
return false; var split = typeText.Split('|');
if (split.Length != 2)
{
return false;
}
if (!string.Equals(split[0], "list", StringComparison.OrdinalIgnoreCase) || !string.Equals(split[1], "int", StringComparison.OrdinalIgnoreCase))
{
return false;
}
return true;
} }
internal override Type RealType => typeof(List<>); internal override Type RealType => typeof(List<int>);
internal override object TryParseFrom(string cellText) internal override object TryParseFrom(string cellText)
{ {
return null; return null;

4
Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TString.cs

@ -4,11 +4,11 @@ namespace Tools.ExcelResolver.Editor
{ {
internal class TString : TType internal class TString : TType
{ {
internal override string TypeName => "string"; internal override string FieldWriteFormat => "System.string";
internal override bool String2TType(string typeText) internal override bool String2TType(string typeText)
{ {
return string.Equals(typeText, TypeName, StringComparison.OrdinalIgnoreCase); return string.Equals(typeText, "string", StringComparison.OrdinalIgnoreCase);
} }
internal override Type RealType => typeof(string); internal override Type RealType => typeof(string);

2
Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TType.cs

@ -4,7 +4,7 @@ namespace Tools.ExcelResolver.Editor
{ {
internal abstract class TType internal abstract class TType
{ {
internal abstract string TypeName { get; } internal abstract string FieldWriteFormat { get; }
internal abstract bool String2TType(string typeText); internal abstract bool String2TType(string typeText);

10
Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TVector2.cs

@ -5,11 +5,11 @@ namespace Tools.ExcelResolver.Editor
{ {
internal class TVector2 : TType internal class TVector2 : TType
{ {
internal override string TypeName => "vector2"; internal override string FieldWriteFormat => "Vector2";
internal override bool String2TType(string typeText) internal override bool String2TType(string typeText)
{ {
return string.Equals(typeText, TypeName, StringComparison.OrdinalIgnoreCase); return string.Equals(typeText, "vector2", StringComparison.OrdinalIgnoreCase);
} }
internal override Type RealType => typeof(Vector2); internal override Type RealType => typeof(Vector2);
@ -17,14 +17,14 @@ namespace Tools.ExcelResolver.Editor
internal override object TryParseFrom(string cellText) internal override object TryParseFrom(string cellText)
{ {
cellText = cellText[1..^1]; cellText = cellText[1..^1];
var ss = cellText.Split(','); var split = cellText.Split(',');
if (ss.Length != 2) if (split.Length != 2)
{ {
return null; return null;
} }
else else
{ {
return new Vector2(float.Parse(ss[0]), float.Parse(ss[1])); return new Vector2(float.Parse(split[0]), float.Parse(split[1]));
} }
} }
} }

10
Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TVector3.cs

@ -5,11 +5,11 @@ namespace Tools.ExcelResolver.Editor
{ {
internal class TVector3 : TType internal class TVector3 : TType
{ {
internal override string TypeName => "vector3"; internal override string FieldWriteFormat => "Vector3";
internal override bool String2TType(string typeText) internal override bool String2TType(string typeText)
{ {
return string.Equals(typeText, TypeName, StringComparison.OrdinalIgnoreCase); return string.Equals(typeText, "vector3", StringComparison.OrdinalIgnoreCase);
} }
internal override Type RealType => typeof(Vector3); internal override Type RealType => typeof(Vector3);
@ -22,14 +22,14 @@ namespace Tools.ExcelResolver.Editor
} }
cellText = cellText[1..^1]; cellText = cellText[1..^1];
var ss = cellText.Split(','); var split = cellText.Split(',');
if (ss.Length != 3) if (split.Length != 3)
{ {
return null; return null;
} }
else else
{ {
return new Vector3(float.Parse(ss[0]), float.Parse(ss[1]), float.Parse(ss[2])); return new Vector3(float.Parse(split[0]), float.Parse(split[1]), float.Parse(split[2]));
} }
} }
} }

Loading…
Cancel
Save