Browse Source

代码整理

master
coffee 5 months ago
parent
commit
42e361f0ad
  1. BIN
      Assets/ExcelResolver/Excel/hero.xlsx
  2. 22
      Assets/ScriptableObject/Excel/Hero_3.asset
  3. 8
      Assets/ScriptableObject/Excel/Hero_3.asset.meta
  4. 9
      Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TBool.cs
  5. 9
      Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TFloat.cs
  6. 9
      Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TInt.cs
  7. 7
      Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TList.cs
  8. 9
      Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TString.cs
  9. 4
      Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TType.cs
  10. 11
      Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TVector2.cs
  11. 13
      Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TVector3.cs
  12. 26
      Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.TType.cs

BIN
Assets/ExcelResolver/Excel/hero.xlsx

Binary file not shown.

22
Assets/ScriptableObject/Excel/Hero_3.asset

@ -0,0 +1,22 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 31296c0321326704c8614b265011bd90, type: 3}
m_Name: Hero_3
m_EditorClassIdentifier:
id: 2
name: "\u5973\u5DEB"
icon: hero_3
hp: 80
atk: 8
speed: 1.1
pos: {x: 3, y: 2, z: 4}
ches: {x: 5, y: 12}

8
Assets/ScriptableObject/Excel/Hero_3.asset.meta

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 627fad9d9ab58274298938ce4db65b03
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

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

@ -6,11 +6,16 @@ namespace Tools.ExcelResolver.Editor
{ {
internal override string TypeName => "bool"; internal override string TypeName => "bool";
internal override bool String2TType(string typeText)
{
return string.Equals(typeText, TypeName, StringComparison.OrdinalIgnoreCase);
}
internal override Type RealType => typeof(bool); internal override Type RealType => typeof(bool);
internal override object TryParseFrom(string s) internal override object TryParseFrom(string cellText)
{ {
if (bool.TryParse(s, out var result)) if (bool.TryParse(cellText, out var result))
{ {
return result; return result;
} }

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

@ -6,11 +6,16 @@ namespace Tools.ExcelResolver.Editor
{ {
internal override string TypeName => "float"; internal override string TypeName => "float";
internal override bool String2TType(string typeText)
{
return string.Equals(typeText, TypeName, StringComparison.OrdinalIgnoreCase);
}
internal override Type RealType => typeof(float); internal override Type RealType => typeof(float);
internal override object TryParseFrom(string s) internal override object TryParseFrom(string cellText)
{ {
if (float.TryParse(s, out float result)) if (float.TryParse(cellText, out float result))
{ {
return result; return result;
} }

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

@ -6,11 +6,16 @@ namespace Tools.ExcelResolver.Editor
{ {
internal override string TypeName => "int"; internal override string TypeName => "int";
internal override bool String2TType(string typeText)
{
return string.Equals(typeText, TypeName, StringComparison.OrdinalIgnoreCase);
}
internal override Type RealType => typeof(int); internal override Type RealType => typeof(int);
internal override object TryParseFrom(string s) internal override object TryParseFrom(string cellText)
{ {
return int.TryParse(s, out var result) ? result : null; return int.TryParse(cellText, out var result) ? result : null;
} }
} }
} }

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

@ -6,8 +6,13 @@ namespace Tools.ExcelResolver.Editor
internal class TList : TType internal class TList : TType
{ {
internal override string TypeName => "list"; internal override string TypeName => "list";
internal override bool String2TType(string typeText)
{
return false;
}
internal override Type RealType => typeof(List<>); internal override Type RealType => typeof(List<>);
internal override object TryParseFrom(string s) internal override object TryParseFrom(string cellText)
{ {
return null; return null;
} }

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

@ -6,11 +6,16 @@ namespace Tools.ExcelResolver.Editor
{ {
internal override string TypeName => "string"; internal override string TypeName => "string";
internal override bool String2TType(string typeText)
{
return string.Equals(typeText, TypeName, StringComparison.OrdinalIgnoreCase);
}
internal override Type RealType => typeof(string); internal override Type RealType => typeof(string);
internal override object TryParseFrom(string s) internal override object TryParseFrom(string cellText)
{ {
return s; return cellText;
} }
} }
} }

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

@ -6,8 +6,10 @@ namespace Tools.ExcelResolver.Editor
{ {
internal abstract string TypeName { get; } internal abstract string TypeName { get; }
internal abstract bool String2TType(string typeText);
internal abstract Type RealType { get; } internal abstract Type RealType { get; }
internal abstract object TryParseFrom(string s); internal abstract object TryParseFrom(string cellText);
} }
} }

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

@ -7,12 +7,17 @@ namespace Tools.ExcelResolver.Editor
{ {
internal override string TypeName => "vector2"; internal override string TypeName => "vector2";
internal override bool String2TType(string typeText)
{
return string.Equals(typeText, TypeName, StringComparison.OrdinalIgnoreCase);
}
internal override Type RealType => typeof(Vector2); internal override Type RealType => typeof(Vector2);
internal override object TryParseFrom(string s) internal override object TryParseFrom(string cellText)
{ {
s = s[1..^1]; cellText = cellText[1..^1];
var ss = s.Split(','); var ss = cellText.Split(',');
if (ss.Length != 2) if (ss.Length != 2)
{ {
return null; return null;

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

@ -7,17 +7,22 @@ namespace Tools.ExcelResolver.Editor
{ {
internal override string TypeName => "vector3"; internal override string TypeName => "vector3";
internal override bool String2TType(string typeText)
{
return string.Equals(typeText, TypeName, StringComparison.OrdinalIgnoreCase);
}
internal override Type RealType => typeof(Vector3); internal override Type RealType => typeof(Vector3);
internal override object TryParseFrom(string s) internal override object TryParseFrom(string cellText)
{ {
if (!s.StartsWith("(") || !s.EndsWith(")")) if (!cellText.StartsWith("(") || !cellText.EndsWith(")"))
{ {
return null; return null;
} }
s = s[1..^1]; cellText = cellText[1..^1];
var ss = s.Split(','); var ss = cellText.Split(',');
if (ss.Length != 3) if (ss.Length != 3)
{ {
return null; return null;

26
Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.TType.cs

@ -1,12 +1,22 @@
using System; using System;
using System.Collections.Generic;
using System.Linq; using System.Linq;
using UnityEngine; using System.Reflection;
namespace Tools.ExcelResolver.Editor namespace Tools.ExcelResolver.Editor
{ {
internal static partial class ExcelResolverUtil internal static partial class ExcelResolverUtil
{ {
private static TType[] _allTTypes;
internal static TType[] GetAllTTypes()
{
return Assembly.GetAssembly(typeof(TType))
.GetTypes()
.Where(t => t.IsSubclassOf(typeof(TType)) && !t.IsAbstract)
.Select(t => Activator.CreateInstance(t) as TType)
.ToArray();
}
/// <summary> /// <summary>
/// 更具类型字符串获取 TType /// 更具类型字符串获取 TType
/// </summary> /// </summary>
@ -14,7 +24,19 @@ namespace Tools.ExcelResolver.Editor
/// <returns></returns> /// <returns></returns>
internal static TType GetTTypeByString(string typeText) internal static TType GetTTypeByString(string typeText)
{ {
typeText = typeText.ToLower(); typeText = typeText.ToLower();
_allTTypes ??= GetAllTTypes();
foreach (var tType in _allTTypes)
{
if (tType.String2TType(typeText))
{
return tType;
}
}
throw new Exception($"未找到类型 {typeText}");
return typeText switch return typeText switch
{ {

Loading…
Cancel
Save