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. 7
      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. 12
      Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TString.cs
  9. 5
      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>
/// <param name="path"></param>
/// <returns></returns>
@ -77,6 +77,12 @@ namespace Tools.Editor
return false;
}
Directory.Delete(path, true);
string metaPath = $"{path}.meta";
if (File.Exists(metaPath))
{
File.Delete(metaPath);
}
return true;
}
}

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

@ -5,14 +5,20 @@ namespace Tools.ExcelResolver.Editor
internal class TBool : TType
{
public TBool() { }
public TBool(string typeText = null) : base(typeText) { }
public TBool(string typeText) : base(typeText) { }
internal override Type RealType => typeof(bool);
internal override object DefaultValue => false;
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)

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

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

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

@ -5,7 +5,7 @@ namespace Tools.ExcelResolver.Editor
internal class TEnum : TType
{
public TEnum() { }
public TEnum(string typeText = null, Type enumType = null) : base(typeText)
public TEnum(string typeText, Type enumType) : base(typeText)
{
RealType = enumType;
FieldWriteFormat = RealType.Name;
@ -13,9 +13,10 @@ namespace Tools.ExcelResolver.Editor
internal override Type RealType { get; }
internal override object DefaultValue => 0;
internal override string FieldWriteFormat { get; }
internal override bool String2TType(string typeText)
internal override bool String2TType(string typeText, out TType result)
{
result = null;
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 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)
{
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 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)

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

@ -7,27 +7,30 @@ namespace Tools.ExcelResolver.Editor
internal class TList : TType
{
public TList() { }
public TList(string typeText = null) : base(typeText)
{
String2TType(typeText);
}
public TList(string typeText = null) : base(typeText) { }
internal override Type RealType => typeof(List<>).MakeGenericType(InnerType.RealType);
internal override string FieldWriteFormat => $"List<{InnerType.RealType.Name}>";
internal override object DefaultValue => Activator.CreateInstance(typeof(List<>).MakeGenericType(InnerType.RealType));
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(',');
if (split.Length < 2 || !split[0].StartsWith("list", StringComparison.OrdinalIgnoreCase))
{
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)

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

@ -10,11 +10,17 @@ namespace Tools.ExcelResolver.Editor
internal override object DefaultValue => string.Empty;
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)
{
return cellText;

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

@ -13,13 +13,14 @@ namespace Tools.ExcelResolver.Editor
/// 类型的写入格式
/// </summary>
internal abstract string FieldWriteFormat { get; }
/// <summary>
/// 通过字符串判断是否是当前类型
/// </summary>
/// <param name="typeText"></param>
/// <param name="result"></param>
/// <returns></returns>
internal abstract bool String2TType(string typeText);
internal abstract bool String2TType(string typeText, out TType result);
/// <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 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)

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 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)

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

@ -49,12 +49,11 @@ namespace Tools.ExcelResolver.Editor
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();
foreach (var enumType in _enumTypes)
{

Loading…
Cancel
Save