Browse Source

代码优化

main
coffee 5 months ago
parent
commit
fabfe4be0f
  1. 8
      Assets/Unity-Tools/Core/Editor/DirectoryUtil.cs
  2. 12
      Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TBool.cs
  3. 24
      Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TDict.cs
  4. 5
      Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TEnum.cs
  5. 11
      Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TFloat.cs
  6. 10
      Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TInt.cs
  7. 17
      Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TList.cs
  8. 10
      Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TString.cs
  9. 3
      Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TType.cs
  10. 10
      Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TVector2.cs
  11. 10
      Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TVector3.cs
  12. 5
      Assets/Unity-Tools/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.TType.cs

8
Assets/Unity-Tools/Core/Editor/DirectoryUtil.cs

@ -66,7 +66,7 @@ namespace Tools.Editor
} }
/// <summary> /// <summary>
/// 删除目录下所有子目录和文件。 /// 删除文件夹
/// </summary> /// </summary>
/// <param name="path"></param> /// <param name="path"></param>
/// <returns></returns> /// <returns></returns>
@ -77,6 +77,12 @@ namespace Tools.Editor
return false; return false;
} }
Directory.Delete(path, true); Directory.Delete(path, true);
string metaPath = $"{path}.meta";
if (File.Exists(metaPath))
{
File.Delete(metaPath);
}
return true; return true;
} }
} }

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

@ -5,14 +5,20 @@ namespace Tools.ExcelResolver.Editor
internal class TBool : TType internal class TBool : TType
{ {
public TBool() { } public TBool() { }
public TBool(string typeText = null) : base(typeText) { } public TBool(string typeText) : base(typeText) { }
internal override Type RealType => typeof(bool); internal override Type RealType => typeof(bool);
internal override object DefaultValue => false; internal override object DefaultValue => false;
internal override string FieldWriteFormat => "System.Boolean"; internal override string FieldWriteFormat => "System.Boolean";
internal override bool String2TType(string typeText) internal override bool String2TType(string typeText, out TType result)
{ {
return string.Equals(typeText, "bool", StringComparison.OrdinalIgnoreCase); result = null;
if (string.Equals(typeText, "bool", StringComparison.OrdinalIgnoreCase))
{
result = new TBool(typeText);
return true;
}
return false;
} }
internal override object TryParseFrom(string cellText) internal override object TryParseFrom(string cellText)

24
Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TDict.cs

@ -7,10 +7,7 @@ namespace Tools.ExcelResolver.Editor
internal class TDict : TType internal class TDict : TType
{ {
public TDict() { } public TDict() { }
public TDict(string typeText = null) : base(typeText) public TDict(string typeText) : base(typeText) { }
{
String2TType(typeText);
}
internal override Type RealType => typeof(Dictionary<,>).MakeGenericType(KeyType.RealType, ValueType.RealType); internal override Type RealType => typeof(Dictionary<,>).MakeGenericType(KeyType.RealType, ValueType.RealType);
internal override string FieldWriteFormat => $"Dictionary<{KeyType.RealType.Name}, {ValueType.RealType.Name}>"; 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 override object DefaultValue => Activator.CreateInstance(typeof(Dictionary<,>).MakeGenericType(KeyType.RealType, ValueType.RealType));
@ -19,8 +16,9 @@ namespace Tools.ExcelResolver.Editor
internal TType KeyType { get; set; } internal TType KeyType { get; set; }
internal TType ValueType { get; set; } internal TType ValueType { get; set; }
internal override bool String2TType(string typeText) internal override bool String2TType(string typeText, out TType result)
{ {
result = null;
var split = typeText.Split(',', StringSplitOptions.RemoveEmptyEntries); var split = typeText.Split(',', StringSplitOptions.RemoveEmptyEntries);
if (split.Length < 3 || !split[0].StartsWith("dict", StringComparison.OrdinalIgnoreCase)) if (split.Length < 3 || !split[0].StartsWith("dict", StringComparison.OrdinalIgnoreCase))
{ {
@ -28,10 +26,20 @@ namespace Tools.ExcelResolver.Editor
} }
// 解析键和值的类型 // 解析键和值的类型
KeyType = ExcelResolverUtil.GetTTypeByString(split[1]); var keyType = ExcelResolverUtil.GetTTypeByString(split[1]);
ValueType = ExcelResolverUtil.GetTTypeByString(split[2]); var valueType = ExcelResolverUtil.GetTTypeByString(split[2]);
return KeyType != null && ValueType != null; if (keyType != null && valueType != null)
{
result = new TDict(typeText)
{
KeyType = keyType,
ValueType = valueType
};
return true;
}
return false;
} }
internal override object TryParseFrom(string cellText) internal override object TryParseFrom(string cellText)

5
Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TEnum.cs

@ -5,7 +5,7 @@ namespace Tools.ExcelResolver.Editor
internal class TEnum : TType internal class TEnum : TType
{ {
public TEnum() { } public TEnum() { }
public TEnum(string typeText = null, Type enumType = null) : base(typeText) public TEnum(string typeText, Type enumType) : base(typeText)
{ {
RealType = enumType; RealType = enumType;
FieldWriteFormat = RealType.Name; FieldWriteFormat = RealType.Name;
@ -14,8 +14,9 @@ namespace Tools.ExcelResolver.Editor
internal override object DefaultValue => 0; internal override object DefaultValue => 0;
internal override string FieldWriteFormat { get; } internal override string FieldWriteFormat { get; }
internal override bool String2TType(string typeText) internal override bool String2TType(string typeText, out TType result)
{ {
result = null;
return false; return false;
} }

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

@ -10,12 +10,19 @@ namespace Tools.ExcelResolver.Editor
internal override object DefaultValue => 0.0f; internal override object DefaultValue => 0.0f;
internal override string FieldWriteFormat => "System.Single"; internal override string FieldWriteFormat => "System.Single";
internal override bool String2TType(string typeText) internal override bool String2TType(string typeText, out TType result)
{ {
return string.Equals(typeText, "float", StringComparison.OrdinalIgnoreCase); result = null;
if (string.Equals(typeText, "float", StringComparison.OrdinalIgnoreCase))
{
result = new TFloat(typeText);
return true;
}
return false;
} }
internal override object TryParseFrom(string cellText) internal override object TryParseFrom(string cellText)
{ {
if (float.TryParse(cellText, out float result)) if (float.TryParse(cellText, out float result))

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

@ -10,9 +10,15 @@ namespace Tools.ExcelResolver.Editor
internal override object DefaultValue => 0; internal override object DefaultValue => 0;
internal override string FieldWriteFormat => "System.Int32"; internal override string FieldWriteFormat => "System.Int32";
internal override bool String2TType(string typeText) internal override bool String2TType(string typeText, out TType result)
{ {
return string.Equals(typeText, "int", StringComparison.OrdinalIgnoreCase); result = null;
if (string.Equals(typeText, "int", StringComparison.OrdinalIgnoreCase))
{
result = new TInt(typeText);
return true;
}
return false;
} }
internal override object TryParseFrom(string cellText) internal override object TryParseFrom(string cellText)

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

@ -7,27 +7,30 @@ namespace Tools.ExcelResolver.Editor
internal class TList : TType internal class TList : TType
{ {
public TList() { } public TList() { }
public TList(string typeText = null) : base(typeText) public TList(string typeText = null) : base(typeText) { }
{
String2TType(typeText);
}
internal override Type RealType => typeof(List<>).MakeGenericType(InnerType.RealType); internal override Type RealType => typeof(List<>).MakeGenericType(InnerType.RealType);
internal override string FieldWriteFormat => $"List<{InnerType.RealType.Name}>"; internal override string FieldWriteFormat => $"List<{InnerType.RealType.Name}>";
internal override object DefaultValue => Activator.CreateInstance(typeof(List<>).MakeGenericType(InnerType.RealType)); internal override object DefaultValue => Activator.CreateInstance(typeof(List<>).MakeGenericType(InnerType.RealType));
internal TType InnerType { get; set; } internal TType InnerType { get; set; }
internal override bool String2TType(string typeText) internal override bool String2TType(string typeText, out TType result)
{ {
result = null;
var split = typeText.Split(','); var split = typeText.Split(',');
if (split.Length < 2 || !split[0].StartsWith("list", StringComparison.OrdinalIgnoreCase)) if (split.Length < 2 || !split[0].StartsWith("list", StringComparison.OrdinalIgnoreCase))
{ {
return false; return false;
} }
InnerType = ExcelResolverUtil.GetTTypeByString(split[1]); var innerType = ExcelResolverUtil.GetTTypeByString(split[1]);
if (innerType != null)
{
result = new TList(typeText) { InnerType = innerType };
return true;
}
return InnerType != null; return false;
} }
internal override object TryParseFrom(string cellText) internal override object TryParseFrom(string cellText)

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

@ -10,9 +10,15 @@ namespace Tools.ExcelResolver.Editor
internal override object DefaultValue => string.Empty; internal override object DefaultValue => string.Empty;
internal override string FieldWriteFormat => "System.string"; internal override string FieldWriteFormat => "System.string";
internal override bool String2TType(string typeText) internal override bool String2TType(string typeText, out TType result)
{ {
return string.Equals(typeText, "string", StringComparison.OrdinalIgnoreCase); result = null;
if (string.Equals(typeText, "string", StringComparison.OrdinalIgnoreCase))
{
result = new TString(typeText);
return true;
}
return false;
} }
internal override object TryParseFrom(string cellText) internal override object TryParseFrom(string cellText)

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

@ -18,8 +18,9 @@ namespace Tools.ExcelResolver.Editor
/// 通过字符串判断是否是当前类型 /// 通过字符串判断是否是当前类型
/// </summary> /// </summary>
/// <param name="typeText"></param> /// <param name="typeText"></param>
/// <param name="result"></param>
/// <returns></returns> /// <returns></returns>
internal abstract bool String2TType(string typeText); internal abstract bool String2TType(string typeText, out TType result);
/// <summary> /// <summary>
/// 将字符串转换为当前类型 /// 将字符串转换为当前类型

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

@ -11,9 +11,15 @@ namespace Tools.ExcelResolver.Editor
internal override object DefaultValue => Vector2.zero; internal override object DefaultValue => Vector2.zero;
internal override string FieldWriteFormat => "Vector2"; internal override string FieldWriteFormat => "Vector2";
internal override bool String2TType(string typeText) internal override bool String2TType(string typeText, out TType result)
{ {
return string.Equals(typeText, "vector2", StringComparison.OrdinalIgnoreCase); result = null;
if (string.Equals(typeText, "vector2", StringComparison.OrdinalIgnoreCase))
{
result = new TVector2(typeText);
return true;
}
return false;
} }
internal override object TryParseFrom(string cellText) internal override object TryParseFrom(string cellText)

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

@ -11,9 +11,15 @@ namespace Tools.ExcelResolver.Editor
internal override object DefaultValue => Vector3.zero; internal override object DefaultValue => Vector3.zero;
internal override string FieldWriteFormat => "Vector3"; internal override string FieldWriteFormat => "Vector3";
internal override bool String2TType(string typeText) internal override bool String2TType(string typeText, out TType result)
{ {
return string.Equals(typeText, "vector3", StringComparison.OrdinalIgnoreCase); result = null;
if (string.Equals(typeText, "vector3", StringComparison.OrdinalIgnoreCase))
{
result = new TVector3(typeText);
return true;
}
return false;
} }
internal override object TryParseFrom(string cellText) internal override object TryParseFrom(string cellText)

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

@ -49,12 +49,11 @@ namespace Tools.ExcelResolver.Editor
foreach (var tType in _allTTypes) foreach (var tType in _allTTypes)
{ {
if (tType.String2TType(targetText)) if (tType.String2TType(targetText, out var result))
{ {
return Activator.CreateInstance(tType.GetType(), targetText) as TType; return result;
} }
} }
_enumTypes ??= GetAllEnumTypes(); _enumTypes ??= GetAllEnumTypes();
foreach (var enumType in _enumTypes) foreach (var enumType in _enumTypes)
{ {

Loading…
Cancel
Save