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 bool String2TType(string typeText)
{
return string.Equals(typeText, TypeName, StringComparison.OrdinalIgnoreCase);
}
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;
}

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 bool String2TType(string typeText)
{
return string.Equals(typeText, TypeName, StringComparison.OrdinalIgnoreCase);
}
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;
}

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 bool String2TType(string typeText)
{
return string.Equals(typeText, TypeName, StringComparison.OrdinalIgnoreCase);
}
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 override string TypeName => "list";
internal override bool String2TType(string typeText)
{
return false;
}
internal override Type RealType => typeof(List<>);
internal override object TryParseFrom(string s)
internal override object TryParseFrom(string cellText)
{
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 bool String2TType(string typeText)
{
return string.Equals(typeText, TypeName, StringComparison.OrdinalIgnoreCase);
}
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 bool String2TType(string typeText);
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 bool String2TType(string typeText)
{
return string.Equals(typeText, TypeName, StringComparison.OrdinalIgnoreCase);
}
internal override Type RealType => typeof(Vector2);
internal override object TryParseFrom(string s)
internal override object TryParseFrom(string cellText)
{
s = s[1..^1];
var ss = s.Split(',');
cellText = cellText[1..^1];
var ss = cellText.Split(',');
if (ss.Length != 2)
{
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 bool String2TType(string typeText)
{
return string.Equals(typeText, TypeName, StringComparison.OrdinalIgnoreCase);
}
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;
}
s = s[1..^1];
var ss = s.Split(',');
cellText = cellText[1..^1];
var ss = cellText.Split(',');
if (ss.Length != 3)
{
return null;

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

@ -1,12 +1,22 @@
using System;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using System.Reflection;
namespace Tools.ExcelResolver.Editor
{
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>
/// 更具类型字符串获取 TType
/// </summary>
@ -14,7 +24,19 @@ namespace Tools.ExcelResolver.Editor
/// <returns></returns>
internal static TType GetTTypeByString(string typeText)
{
typeText = typeText.ToLower();
_allTTypes ??= GetAllTTypes();
foreach (var tType in _allTTypes)
{
if (tType.String2TType(typeText))
{
return tType;
}
}
throw new Exception($"未找到类型 {typeText}");
return typeText switch
{

Loading…
Cancel
Save