diff --git a/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.ReadExcel.cs b/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.ReadExcel.cs index 0908e75..acda6ed 100644 --- a/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.ReadExcel.cs +++ b/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.ReadExcel.cs @@ -50,7 +50,7 @@ namespace Tools.ExcelResolver.Editor var classCodeData = new ClassCodeData(excelFile.Name[..^5]); classCodeData.fields = GetFieldData(worksheet, classCodeData); - classCodeData.tableType = CheckTableType(worksheet, classCodeData); + classCodeData.tableType = CheckTableTypeAndSetKeyField(worksheet, classCodeData); WriteDataCode(classCodeData); WriteSOCode(classCodeData); @@ -96,7 +96,7 @@ namespace Tools.ExcelResolver.Editor } } - private static TableType CheckTableType(ExcelWorksheet worksheet, ClassCodeData classCodeData) + private static TableType CheckTableTypeAndSetKeyField(ExcelWorksheet worksheet, ClassCodeData classCodeData) { var tableType = TableType.SingleKeyTable; @@ -108,8 +108,9 @@ namespace Tools.ExcelResolver.Editor var configs = config.Split("|"); Assert.IsTrue(configs.Length >= 2, $"'{classCodeData.className}'配置错误,SingleKeyTable只能有一个主键"); var key = configs[1]; - classCodeData.keyField = classCodeData.fields.Where(f => f.Value.varName == key).Select(p => p.Value).ToArray(); - Assert.IsTrue(classCodeData.keyField.Length == 1, $"'{classCodeData.className}'配置错误,主键字段不存在或重复"); + classCodeData.keyField = new FieldData[] { classCodeData.fields.FirstOrDefault(f => f.Value.varName == key).Value }; + Assert.IsTrue(classCodeData.keyField[0] != null, $"'{classCodeData.className}'配置错误,主键字段不存在或重复"); + // 判断主键是否有重复值 var keyDict = ExcelResolverUtil.ReadColumn(worksheet, classCodeData.keyField[0].colIndex); var duplicateValues = keyDict.GroupBy(x => x.Value).Where(g => g.Count() > 1); foreach (var duplicateValue in duplicateValues) @@ -121,6 +122,22 @@ namespace Tools.ExcelResolver.Editor else if (config.Contains("UnionMultiKeyTable")) { tableType = TableType.UnionMultiKeyTable; + var configs = config.Split("|"); + Assert.IsTrue(configs.Length >= 3, $"'{classCodeData.className}'配置错误,UnionMultiKeyTable至少有两个主键"); + var keys = configs[1..]; + classCodeData.keyField = keys.Select(key => + { + var field = classCodeData.fields.FirstOrDefault(f => f.Value.varName == key); + Assert.IsTrue(field.Value != null, $"'{classCodeData.className}'配置错误,主键字段不存在"); + return field.Value; + }).ToArray(); + // 判断主键是否有重复值或缺失 + var keyDictList = new List>(); + foreach (var keyField in classCodeData.keyField) + { + keyDictList.Add(ExcelResolverUtil.ReadColumn(worksheet, keyField.colIndex)); + } + } else if (config.Contains("MultiKeyTable")) { diff --git a/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteDataSO.cs b/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteDataSO.cs index dfc0657..54e593f 100644 --- a/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteDataSO.cs +++ b/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteDataSO.cs @@ -1,8 +1,10 @@ using System; using System.Collections.Generic; using System.Reflection; +using System.Text; using OfficeOpenXml; using Sirenix.OdinInspector; +using Tools.Editor; using UnityEditor; using UnityEngine; @@ -22,6 +24,7 @@ namespace Tools.ExcelResolver.Editor var dataName = $"{classCodeData.className}"; var path = $"{excelResolverConfig.SOPathRoot}/{classCodeData.className}/"; + DirectoryUtil.MakeSureDirectory(path); string[] assetGuids = AssetDatabase.FindAssets($"t:{dataName}", new[] { path }); Dictionary originAssets = new(); @@ -93,13 +96,29 @@ namespace Tools.ExcelResolver.Editor switch (classCodeData.tableType) { case TableType.SingleKeyTable: + { var keyColIndex = classCodeData.keyField[0].colIndex; var key = worksheet.Cells[row, keyColIndex].Text; if (!string.IsNullOrEmpty(key)) return $"{classCodeData.className}_{key}"; break; - // case TableType.UnionMultiKeyTable: - // return $"{classCodeData.className}_{classCodeData.keyField[0].varName}"; + } + case TableType.UnionMultiKeyTable: + { + var sb = new StringBuilder(); + sb.Append(classCodeData.className); + foreach (var keyField in classCodeData.keyField) + { + var keyColIndex = keyField.colIndex; + var key = worksheet.Cells[row, keyColIndex].Text; + sb.Append("_"); + sb.Append(key); + } + + if (sb.Length > classCodeData.className.Length) + return sb.ToString(); + break; + } // case TableType.MultiKeyTable: // return $"{classCodeData.className}_{classCodeData.keyField[0].varName}"; // case TableType.NotKetTable: diff --git a/Assets/_Project/ExcelResolver/Excel/hero.xlsx b/Assets/_Project/ExcelResolver/Excel/hero.xlsx index 475ac0e..a684677 100644 Binary files a/Assets/_Project/ExcelResolver/Excel/hero.xlsx and b/Assets/_Project/ExcelResolver/Excel/hero.xlsx differ diff --git a/Assets/_Project/ExcelResolver/Excel/monster.xlsx b/Assets/_Project/ExcelResolver/Excel/monster.xlsx new file mode 100644 index 0000000..1f40baa Binary files /dev/null and b/Assets/_Project/ExcelResolver/Excel/monster.xlsx differ diff --git a/Assets/_Project/ExcelResolver/Excel/monster.xlsx.meta b/Assets/_Project/ExcelResolver/Excel/monster.xlsx.meta new file mode 100644 index 0000000..6b94700 --- /dev/null +++ b/Assets/_Project/ExcelResolver/Excel/monster.xlsx.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 172d7603496e3e044bffa8bc57fd34c9 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Project/ScriptableObject/Excel/Monster.meta b/Assets/_Project/ScriptableObject/Excel/Monster.meta new file mode 100644 index 0000000..2fa8a5f --- /dev/null +++ b/Assets/_Project/ScriptableObject/Excel/Monster.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fe1113ebe4d26c6418661c6993c778d5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Project/ScriptableObject/Excel/Monster/Monster_1_.asset b/Assets/_Project/ScriptableObject/Excel/Monster/Monster_1_.asset new file mode 100644 index 0000000..a5f182b --- /dev/null +++ b/Assets/_Project/ScriptableObject/Excel/Monster/Monster_1_.asset @@ -0,0 +1,133 @@ +%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: 07476013186559f459c8b934922db079, type: 3} + m_Name: Monster_1_ + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: + - Name: nihao + Entry: 7 + Data: 0|System.Collections.Generic.Dictionary`2[[System.Int32, mscorlib],[System.Single, + mscorlib]], mscorlib + - Name: comparer + Entry: 7 + Data: 1|System.Collections.Generic.GenericEqualityComparer`1[[System.Int32, + mscorlib]], mscorlib + - Name: + Entry: 8 + Data: + - Name: + Entry: 12 + Data: 2 + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 3 + Data: 2 + - Name: $v + Entry: 4 + Data: 2.3 + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 3 + Data: 5 + - Name: $v + Entry: 4 + Data: 4.6 + - Name: + Entry: 8 + Data: + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: attribute + Entry: 7 + Data: 2|System.Collections.Generic.Dictionary`2[[Tools.ExcelResolver.Attribute, + Assembly-CSharp],[System.Int32, mscorlib]], mscorlib + - Name: comparer + Entry: 7 + Data: 3|System.Collections.Generic.EnumEqualityComparer`1[[Tools.ExcelResolver.Attribute, + Assembly-CSharp]], mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 12 + Data: 2 + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 3 + Data: 0 + - Name: $v + Entry: 3 + Data: 500 + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 3 + Data: 1 + - Name: $v + Entry: 3 + Data: 300 + - Name: + Entry: 8 + Data: + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + id: 1 + level: 0 + name: "\u9053\u58EB" + icon: hero_1 + has: 1 + hp: 100 + atk: 20 + speed: 1.2 + pos: {x: 0, y: 1, z: 9} + ches: {x: 0, y: 1} + attack_target: + - {x: 1, y: 2} + - {x: 1, y: 2} + - {x: 1, y: 2} + - {x: 1, y: 2} + color: 1 diff --git a/Assets/_Project/ScriptableObject/Excel/Monster/Monster_1_.asset.meta b/Assets/_Project/ScriptableObject/Excel/Monster/Monster_1_.asset.meta new file mode 100644 index 0000000..fc30025 --- /dev/null +++ b/Assets/_Project/ScriptableObject/Excel/Monster/Monster_1_.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9b14440591c82514b94b46bafa3e6f01 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Project/ScriptableObject/Excel/Monster/Monster_2_.asset b/Assets/_Project/ScriptableObject/Excel/Monster/Monster_2_.asset new file mode 100644 index 0000000..c12c356 --- /dev/null +++ b/Assets/_Project/ScriptableObject/Excel/Monster/Monster_2_.asset @@ -0,0 +1,81 @@ +%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: 07476013186559f459c8b934922db079, type: 3} + m_Name: Monster_2_ + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: + - Name: nihao + Entry: 7 + Data: 0|System.Collections.Generic.Dictionary`2[[System.Int32, mscorlib],[System.Single, + mscorlib]], mscorlib + - Name: comparer + Entry: 7 + Data: 1|System.Collections.Generic.GenericEqualityComparer`1[[System.Int32, + mscorlib]], mscorlib + - Name: + Entry: 8 + Data: + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: attribute + Entry: 7 + Data: 2|System.Collections.Generic.Dictionary`2[[Tools.ExcelResolver.Attribute, + Assembly-CSharp],[System.Int32, mscorlib]], mscorlib + - Name: comparer + Entry: 7 + Data: 3|System.Collections.Generic.EnumEqualityComparer`1[[Tools.ExcelResolver.Attribute, + Assembly-CSharp]], mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + id: 2 + level: 0 + name: + icon: hero_2 + has: 1 + hp: 150 + atk: 0 + speed: 0 + pos: {x: 0, y: 0, z: 0} + ches: {x: 0, y: 0} + attack_target: [] + color: 0 diff --git a/Assets/_Project/ScriptableObject/Excel/Monster/Monster_2_.asset.meta b/Assets/_Project/ScriptableObject/Excel/Monster/Monster_2_.asset.meta new file mode 100644 index 0000000..70559e8 --- /dev/null +++ b/Assets/_Project/ScriptableObject/Excel/Monster/Monster_2_.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d0b135f47516737488bfc50495c301b5 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Project/ScriptableObject/Excel/Monster/Monster_3_.asset b/Assets/_Project/ScriptableObject/Excel/Monster/Monster_3_.asset new file mode 100644 index 0000000..8f27c52 --- /dev/null +++ b/Assets/_Project/ScriptableObject/Excel/Monster/Monster_3_.asset @@ -0,0 +1,94 @@ +%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: 07476013186559f459c8b934922db079, type: 3} + m_Name: Monster_3_ + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: + - Name: nihao + Entry: 7 + Data: 0|System.Collections.Generic.Dictionary`2[[System.Int32, mscorlib],[System.Single, + mscorlib]], mscorlib + - Name: comparer + Entry: 7 + Data: 1|System.Collections.Generic.GenericEqualityComparer`1[[System.Int32, + mscorlib]], mscorlib + - Name: + Entry: 8 + Data: + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: attribute + Entry: 7 + Data: 2|System.Collections.Generic.Dictionary`2[[Tools.ExcelResolver.Attribute, + Assembly-CSharp],[System.Int32, mscorlib]], mscorlib + - Name: comparer + Entry: 7 + Data: 3|System.Collections.Generic.EnumEqualityComparer`1[[Tools.ExcelResolver.Attribute, + Assembly-CSharp]], mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 3 + Data: 2 + - Name: $v + Entry: 3 + Data: 200 + - Name: + Entry: 8 + Data: + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + id: 3 + level: 0 + name: "\u5973\u5DEB" + icon: hero_3 + has: 0 + hp: 80 + atk: 8 + speed: 1.1 + pos: {x: 3, y: 2, z: 4} + ches: {x: 5, y: 13} + attack_target: + - {x: 1, y: 2} + color: 23 diff --git a/Assets/_Project/ScriptableObject/Excel/Monster/Monster_3_.asset.meta b/Assets/_Project/ScriptableObject/Excel/Monster/Monster_3_.asset.meta new file mode 100644 index 0000000..3f4a317 --- /dev/null +++ b/Assets/_Project/ScriptableObject/Excel/Monster/Monster_3_.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: da4bc5c61e83cfc43a14097f47e0adaf +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Project/ScriptableObject/Excel/Monster/Monster_4_.asset b/Assets/_Project/ScriptableObject/Excel/Monster/Monster_4_.asset new file mode 100644 index 0000000..788fd8c --- /dev/null +++ b/Assets/_Project/ScriptableObject/Excel/Monster/Monster_4_.asset @@ -0,0 +1,133 @@ +%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: 07476013186559f459c8b934922db079, type: 3} + m_Name: Monster_4_ + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: + - Name: nihao + Entry: 7 + Data: 0|System.Collections.Generic.Dictionary`2[[System.Int32, mscorlib],[System.Single, + mscorlib]], mscorlib + - Name: comparer + Entry: 7 + Data: 1|System.Collections.Generic.GenericEqualityComparer`1[[System.Int32, + mscorlib]], mscorlib + - Name: + Entry: 8 + Data: + - Name: + Entry: 12 + Data: 2 + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 3 + Data: 2 + - Name: $v + Entry: 4 + Data: 2.3 + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 3 + Data: 5 + - Name: $v + Entry: 4 + Data: 4.6 + - Name: + Entry: 8 + Data: + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: attribute + Entry: 7 + Data: 2|System.Collections.Generic.Dictionary`2[[Tools.ExcelResolver.Attribute, + Assembly-CSharp],[System.Int32, mscorlib]], mscorlib + - Name: comparer + Entry: 7 + Data: 3|System.Collections.Generic.EnumEqualityComparer`1[[Tools.ExcelResolver.Attribute, + Assembly-CSharp]], mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 12 + Data: 2 + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 3 + Data: 0 + - Name: $v + Entry: 3 + Data: 500 + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 3 + Data: 1 + - Name: $v + Entry: 3 + Data: 300 + - Name: + Entry: 8 + Data: + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + id: 4 + level: 0 + name: "\u9053\u58EB" + icon: hero_1 + has: 1 + hp: 100 + atk: 20 + speed: 1.2 + pos: {x: 0, y: 1, z: 9} + ches: {x: 0, y: 1} + attack_target: + - {x: 1, y: 2} + - {x: 1, y: 2} + - {x: 1, y: 2} + - {x: 1, y: 2} + color: 1 diff --git a/Assets/_Project/ScriptableObject/Excel/Monster/Monster_4_.asset.meta b/Assets/_Project/ScriptableObject/Excel/Monster/Monster_4_.asset.meta new file mode 100644 index 0000000..51198df --- /dev/null +++ b/Assets/_Project/ScriptableObject/Excel/Monster/Monster_4_.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9b944e0ac7ec6b94e99345643526a2a7 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Project/ScriptableObject/Excel/Monster/Monster__.asset b/Assets/_Project/ScriptableObject/Excel/Monster/Monster__.asset new file mode 100644 index 0000000..8b82fe2 --- /dev/null +++ b/Assets/_Project/ScriptableObject/Excel/Monster/Monster__.asset @@ -0,0 +1,81 @@ +%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: 07476013186559f459c8b934922db079, type: 3} + m_Name: Monster__ + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: + - Name: nihao + Entry: 7 + Data: 0|System.Collections.Generic.Dictionary`2[[System.Int32, mscorlib],[System.Single, + mscorlib]], mscorlib + - Name: comparer + Entry: 7 + Data: 1|System.Collections.Generic.GenericEqualityComparer`1[[System.Int32, + mscorlib]], mscorlib + - Name: + Entry: 8 + Data: + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: attribute + Entry: 7 + Data: 2|System.Collections.Generic.Dictionary`2[[Tools.ExcelResolver.Attribute, + Assembly-CSharp],[System.Int32, mscorlib]], mscorlib + - Name: comparer + Entry: 7 + Data: 3|System.Collections.Generic.EnumEqualityComparer`1[[Tools.ExcelResolver.Attribute, + Assembly-CSharp]], mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + id: 0 + level: 0 + name: + icon: + has: 0 + hp: 0 + atk: 0 + speed: 0 + pos: {x: 0, y: 0, z: 0} + ches: {x: 0, y: 0} + attack_target: [] + color: 0 diff --git a/Assets/_Project/ScriptableObject/Excel/Monster/Monster__.asset.meta b/Assets/_Project/ScriptableObject/Excel/Monster/Monster__.asset.meta new file mode 100644 index 0000000..c0242ae --- /dev/null +++ b/Assets/_Project/ScriptableObject/Excel/Monster/Monster__.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e9c4e0423d5964747a67ca5206ab1f0b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Project/ScriptableObject/Excel/Monster/_MonsterUtil.asset b/Assets/_Project/ScriptableObject/Excel/Monster/_MonsterUtil.asset new file mode 100644 index 0000000..f8fdad2 --- /dev/null +++ b/Assets/_Project/ScriptableObject/Excel/Monster/_MonsterUtil.asset @@ -0,0 +1,23 @@ +%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: 597b3ca9edd08af4290f8bdc398d04a1, type: 3} + m_Name: _MonsterUtil + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] diff --git a/Assets/_Project/ScriptableObject/Excel/Monster/_MonsterUtil.asset.meta b/Assets/_Project/ScriptableObject/Excel/Monster/_MonsterUtil.asset.meta new file mode 100644 index 0000000..519638d --- /dev/null +++ b/Assets/_Project/ScriptableObject/Excel/Monster/_MonsterUtil.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8506a93b0f3975940bafb97c6bc3b4bb +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Project/Scripts/Generator/Excel/Monster.cs b/Assets/_Project/Scripts/Generator/Excel/Monster.cs new file mode 100644 index 0000000..7fd8343 --- /dev/null +++ b/Assets/_Project/Scripts/Generator/Excel/Monster.cs @@ -0,0 +1,93 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Tools.ExcelResolver +{ + using System; + using System.Collections; + using System.Collections.Generic; + using UnityEngine; + using Sirenix.OdinInspector; + + + public class Monster : SerializedScriptableObject, IExcelSOData + { + + /// + /// 英雄 + /// + public int id; + + /// + /// 等级 + /// + public int level; + + /// + /// 名称 + /// + public string name; + + /// + /// icon + /// + public string icon; + + /// + /// 有宠物 + /// + public bool has; + + /// + /// 血量 + /// + public int hp; + + /// + /// 攻击力 + /// + public int atk; + + /// + /// 移速 + /// + public float speed; + + /// + /// 位置 + /// + public Vector3 pos; + + /// + /// 位置 + /// + public Vector2 ches; + + /// + /// 攻击优先级 + /// + public List attack_target; + + /// + /// 你好 + /// + public Dictionary nihao; + + /// + /// + /// + public Dictionary attribute; + + /// + /// + /// + public CustomizeColor color; + } +} diff --git a/Assets/_Project/Scripts/Generator/Excel/Monster.cs.meta b/Assets/_Project/Scripts/Generator/Excel/Monster.cs.meta new file mode 100644 index 0000000..6baf8d9 --- /dev/null +++ b/Assets/_Project/Scripts/Generator/Excel/Monster.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 07476013186559f459c8b934922db079 \ No newline at end of file diff --git a/Assets/_Project/Scripts/Generator/Excel/MonsterUtil.cs b/Assets/_Project/Scripts/Generator/Excel/MonsterUtil.cs new file mode 100644 index 0000000..9f119da --- /dev/null +++ b/Assets/_Project/Scripts/Generator/Excel/MonsterUtil.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Tools.ExcelResolver +{ + using System; + using System.Collections; + using System.Collections.Generic; + using UnityEngine; + using Sirenix.OdinInspector; + + + public class MonsterUtil : SerializedScriptableObject, IExcelSOUtil + { + } +} diff --git a/Assets/_Project/Scripts/Generator/Excel/MonsterUtil.cs.meta b/Assets/_Project/Scripts/Generator/Excel/MonsterUtil.cs.meta new file mode 100644 index 0000000..c3a8768 --- /dev/null +++ b/Assets/_Project/Scripts/Generator/Excel/MonsterUtil.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 597b3ca9edd08af4290f8bdc398d04a1 \ No newline at end of file