Browse Source

TSprite

main
zhengchang 4 months ago
parent
commit
8ee2773dc8
  1. 2
      Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TArray.cs
  2. 2
      Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TBool.cs
  3. 2
      Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TClassAndStruct.cs
  4. 2
      Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TDict.cs
  5. 2
      Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TEnum.cs
  6. 2
      Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TFloat.cs
  7. 2
      Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TInt.cs
  8. 2
      Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TList.cs
  9. 32
      Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TSprite.cs
  10. 3
      Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TSprite.cs.meta
  11. 2
      Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TString.cs
  12. 15
      Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TType.cs
  13. 2
      Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TVector2.cs
  14. 2
      Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TVector3.cs
  15. 8
      Assets/_Project/Art.meta
  16. BIN
      Assets/_Project/Art/hero_icon_1.jpg
  17. 117
      Assets/_Project/Art/hero_icon_1.jpg.meta
  18. BIN
      Assets/_Project/ExcelResolver/Excel/testExcel.xlsx
  19. 1
      Assets/_Project/ScriptableObject/Excel/testExcel/testExcel_6.asset
  20. 5
      Assets/_Project/Scripts/Generator/Excel/testExcel.cs

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

@ -9,8 +9,8 @@ namespace Tools.ExcelResolver.Editor
public TArray() { }
public TArray(string typeText = null) : base(typeText) { }
internal override Type RealType => InnerType.RealType.MakeArrayType();
internal override string FieldWriteFormat => $"{InnerType.RealType.Name}[]";
internal override object DefaultValue => Array.CreateInstance(InnerType.RealType, 0);
internal override string FieldWriteFormat => $"{InnerType.RealType.Name}[]";
internal TType InnerType { get; set; }

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

@ -7,8 +7,8 @@ namespace Tools.ExcelResolver.Editor
public TBool() { }
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 object DefaultValue => false;
internal override bool String2TType(string typeText, out TType result)
{

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

@ -18,8 +18,8 @@ namespace Tools.ExcelResolver.Editor
}
}
internal override Type RealType { get; }
internal override object DefaultValue => null;
internal override string FieldWriteFormat { get; }
internal override object DefaultValue => null;
private readonly TType[] tType; // 初始化时创建可以减少运行时开销

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

@ -9,8 +9,8 @@ namespace Tools.ExcelResolver.Editor
public TDict() { }
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));
internal override string FieldWriteFormat => $"Dictionary<{KeyType.RealType.Name}, {ValueType.RealType.Name}>";
// 键和值的类型
internal TType KeyType { get; set; }

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

@ -12,8 +12,8 @@ namespace Tools.ExcelResolver.Editor
isFlags = RealType.GetCustomAttributes(typeof(FlagsAttribute), false).Length > 0;
}
internal override Type RealType { get; }
internal override object DefaultValue => 0;
internal override string FieldWriteFormat { get; }
internal override object DefaultValue => 0;
private bool isFlags = false;

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

@ -7,8 +7,8 @@ namespace Tools.ExcelResolver.Editor
public TFloat() { }
public TFloat(string typeText = null) : base(typeText) { }
internal override Type RealType => typeof(float);
internal override object DefaultValue => 0.0f;
internal override string FieldWriteFormat => "System.Single";
internal override object DefaultValue => 0.0f;
internal override bool String2TType(string typeText, out TType result)
{

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

@ -7,8 +7,8 @@ namespace Tools.ExcelResolver.Editor
public TInt() { }
public TInt(string typeText = null) : base(typeText) { }
internal override Type RealType => typeof(int);
internal override object DefaultValue => 0;
internal override string FieldWriteFormat => "System.Int32";
internal override object DefaultValue => 0;
internal override bool String2TType(string typeText, out TType result)
{

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

@ -9,8 +9,8 @@ namespace Tools.ExcelResolver.Editor
public TList() { }
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 override string FieldWriteFormat => $"List<{InnerType.RealType.Name}>";
internal TType InnerType { get; set; }

32
Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TSprite.cs

@ -0,0 +1,32 @@
using System;
using UnityEngine;
namespace Tools.ExcelResolver.Editor
{
internal class TSprite : TType
{
public TSprite() { }
public TSprite(string typeText) : base(typeText) { }
internal override Type RealType => typeof(Sprite);
internal override string FieldWriteFormat => "Sprite";
internal override object DefaultValue => null;
internal override bool String2TType(string typeText, out TType result)
{
result = null;
if (typeText.StartsWith("sprite", StringComparison.OrdinalIgnoreCase))
{
result = new TSprite(typeText);
return true;
}
return false;
}
internal override object TryParseFrom(string cellText)
{
var pathFormat = GetTag("path");
var path = string.Format(pathFormat, cellText);
return UnityEditor.AssetDatabase.LoadAssetAtPath<Sprite>(path);
}
}
}

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

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: ed3219300cef43518c72edc0164a9355
timeCreated: 1739350052

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

@ -7,8 +7,8 @@ namespace Tools.ExcelResolver.Editor
public TString() { }
public TString(string typeText = null) : base(typeText) { }
internal override Type RealType => typeof(string);
internal override object DefaultValue => string.Empty;
internal override string FieldWriteFormat => "System.string";
internal override object DefaultValue => string.Empty;
internal override bool String2TType(string typeText, out TType result)
{

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

@ -7,12 +7,15 @@ namespace Tools.ExcelResolver.Editor
{
internal abstract Type RealType { get; }
internal abstract object DefaultValue { get; }
/// <summary>
/// 类型的写入格式
/// </summary>
internal abstract string FieldWriteFormat { get; }
/// <summary>
/// 默认值
/// </summary>
internal abstract object DefaultValue { get; }
/// <summary>
/// 通过字符串判断是否是当前类型
@ -59,7 +62,13 @@ namespace Tools.ExcelResolver.Editor
{
return null;
}
return tag.GetValueOrDefault(key);
if (tag.TryGetValue(key, out var tag1))
{
return tag1;
}
throw new Exception($"未配置tag: {key}");
}
protected string GetTagByDefault(string key, string defaultValue)
{

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

@ -8,8 +8,8 @@ namespace Tools.ExcelResolver.Editor
public TVector2() { }
public TVector2(string typeText = null) : base(typeText) { }
internal override Type RealType => typeof(Vector2);
internal override object DefaultValue => Vector2.zero;
internal override string FieldWriteFormat => "Vector2";
internal override object DefaultValue => Vector2.zero;
internal override bool String2TType(string typeText, out TType result)
{

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

@ -8,8 +8,8 @@ namespace Tools.ExcelResolver.Editor
public TVector3() { }
public TVector3(string typeText = null) : base(typeText) { }
internal override Type RealType => typeof(Vector3);
internal override object DefaultValue => Vector3.zero;
internal override string FieldWriteFormat => "Vector3";
internal override object DefaultValue => Vector3.zero;
internal override bool String2TType(string typeText, out TType result)
{

8
Assets/_Project/Art.meta

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 25be6c3fe41c14340ba209c1dd35c7db
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/_Project/Art/hero_icon_1.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

117
Assets/_Project/Art/hero_icon_1.jpg.meta

@ -0,0 +1,117 @@
fileFormatVersion: 2
guid: bb675bdf01f86df4e833cfee142a8914
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/_Project/ExcelResolver/Excel/testExcel.xlsx

Binary file not shown.

1
Assets/_Project/ScriptableObject/Excel/testExcel/testExcel_6.asset

@ -43,3 +43,4 @@ MonoBehaviour:
skillArray:
- {x: 1001, y: 1002, z: 1003}
- {x: 1002, y: 1003, z: 1002}
icon: {fileID: 21300000, guid: bb675bdf01f86df4e833cfee142a8914, type: 3}

5
Assets/_Project/Scripts/Generator/Excel/testExcel.cs

@ -34,5 +34,10 @@ namespace Tools.ExcelResolver
/// 技能列表
/// </summary>
public Vector3[] skillArray;
/// <summary>
/// 头像
/// </summary>
public Sprite icon;
}
}

Loading…
Cancel
Save