From c38b6097c78f47a0e0f8aa89057bfc533e5ef8ce Mon Sep 17 00:00:00 2001 From: coffee <985942825@qq.com> Date: Mon, 27 Jan 2025 02:45:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8Util=E9=9B=86=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ExcelResolverEditorWindow.ReadExcel.cs | 4 +- ... ExcelResolverEditorWindow.WriteDataSO.cs} | 39 +++---- ...lResolverEditorWindow.WriteDataSO.cs.meta} | 0 .../ExcelResolverEditorWindow.WriteUtilSO.cs | 51 ++++++++++ ...elResolverEditorWindow.WriteUtilSO.cs.meta | 3 + Assets/_Project/ExcelResolver/Excel/hero.xlsx | Bin 11123 -> 11143 bytes .../Excel/Hero/{Hero_5.asset => Hero_6.asset} | 6 +- .../{Hero_5.asset.meta => Hero_6.asset.meta} | 2 +- .../Excel/Hero/_HeroUtil.asset | 95 ++++++++++++++++++ .../Excel/Hero/_HeroUtil.asset.meta | 8 ++ 10 files changed, 185 insertions(+), 23 deletions(-) rename Assets/Unity-Tools/ExcelResolver/Editor/{ExcelResolverEditorWindow.WriteSOData.cs => ExcelResolverEditorWindow.WriteDataSO.cs} (76%) rename Assets/Unity-Tools/ExcelResolver/Editor/{ExcelResolverEditorWindow.WriteSOData.cs.meta => ExcelResolverEditorWindow.WriteDataSO.cs.meta} (100%) create mode 100644 Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteUtilSO.cs create mode 100644 Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteUtilSO.cs.meta rename Assets/_Project/ScriptableObject/Excel/Hero/{Hero_5.asset => Hero_6.asset} (97%) rename Assets/_Project/ScriptableObject/Excel/Hero/{Hero_5.asset.meta => Hero_6.asset.meta} (79%) create mode 100644 Assets/_Project/ScriptableObject/Excel/Hero/_HeroUtil.asset create mode 100644 Assets/_Project/ScriptableObject/Excel/Hero/_HeroUtil.asset.meta diff --git a/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.ReadExcel.cs b/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.ReadExcel.cs index a770f1c..0908e75 100644 --- a/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.ReadExcel.cs +++ b/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.ReadExcel.cs @@ -73,7 +73,7 @@ namespace Tools.ExcelResolver.Editor else { Debug.Log("未更改过字段,开始写入SO数据"); - WriteSOData(); + WriteDataSO(); } } @@ -92,7 +92,7 @@ namespace Tools.ExcelResolver.Editor { isCompilationFinished = false; Debug.Log("Assembly-CSharp加载完成,开始写入SO数据"); - WriteSOData(); + WriteDataSO(); } } diff --git a/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteSOData.cs b/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteDataSO.cs similarity index 76% rename from Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteSOData.cs rename to Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteDataSO.cs index 5f660a4..058d174 100644 --- a/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteSOData.cs +++ b/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteDataSO.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.IO; using System.Reflection; using OfficeOpenXml; using Sirenix.OdinInspector; @@ -14,30 +13,32 @@ namespace Tools.ExcelResolver.Editor [FoldoutGroup("Hide Setting")] [ShowInInspector] private Dictionary classCodeDataDict = new(); - private void WriteSOData() + private void WriteDataSO() { foreach (var classCodeDataDictPair in classCodeDataDict) { var worksheet = classCodeDataDictPair.Key; var classCodeData = classCodeDataDictPair.Value; - Type soType = ExcelResolverUtil.GetOrCacheTypeByName(classCodeData.className); + Type dataSOType = ExcelResolverUtil.GetOrCacheTypeByName(classCodeData.className); - if (soType == null) + if (dataSOType == null) { Debug.LogError($"Class '{classCodeData.className}SO' not found. Please generate classes first (or check namespace)."); return; } var path = $"{excelResolverConfig.SOPathRoot}/{classCodeData.className}/"; - string[] assetGuids = AssetDatabase.FindAssets($"t:{soType}", new[] { path }); - Dictionary assets = new(); + string[] assetGuids = AssetDatabase.FindAssets($"t:{dataSOType}", new[] { path }); + Dictionary originAssets = new(); for (int i = 0; i < assetGuids.Length; i++) { string assetPath = AssetDatabase.GUIDToAssetPath(assetGuids[i]); ScriptableObject scriptableObject = AssetDatabase.LoadAssetAtPath(assetPath); - assets.Add(scriptableObject.name, scriptableObject); + originAssets.Add(scriptableObject.name, scriptableObject); } + + var result = new List(); for (int row = 1; row <= worksheet.Dimension.End.Row; row++) { @@ -47,33 +48,37 @@ namespace Tools.ExcelResolver.Editor var assetName = getAssetName(worksheet, row, classCodeData); var fullPath = $"{path}{assetName}.asset"; - if (assets.ContainsKey(assetName)) + if (originAssets.ContainsKey(assetName)) { - set(assets[assetName], soType, worksheet, row, classCodeData); - EditorUtility.SetDirty(assets[assetName]); - Debug.Log($"刷新:{assetName}", assets[assetName]); - assets.Remove(assetName); + set(originAssets[assetName], dataSOType, worksheet, row, classCodeData); + EditorUtility.SetDirty(originAssets[assetName]); + Debug.Log($"刷新:{assetName}", originAssets[assetName]); + result.Add(originAssets[assetName]); + originAssets.Remove(assetName); } else { - ScriptableObject instance = ScriptableObject.CreateInstance(soType); - set(instance, soType, worksheet, row, classCodeData); + ScriptableObject instance = ScriptableObject.CreateInstance(dataSOType); + set(instance, dataSOType, worksheet, row, classCodeData); AssetDatabase.CreateAsset(instance, fullPath); Debug.Log($"创建:{assetName}", instance); + result.Add(instance); } } - foreach (var value in assets.Values) + foreach (var value in originAssets.Values) { Debug.LogError($"删除:{value.name}", value); AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(value)); } + + WriteUtilSO(path, dataSOType, result, classCodeData); } AssetDatabase.SaveAssets(); GC.Collect(); GC.WaitForPendingFinalizers(); - void set(ScriptableObject instance, Type soType, ExcelWorksheet worksheet, int row, ClassCodeData classCodeData) + void set(ScriptableObject instance, Type dataSOType, ExcelWorksheet worksheet, int row, ClassCodeData classCodeData) { foreach (var pair in classCodeData.fields) { @@ -82,7 +87,7 @@ namespace Tools.ExcelResolver.Editor var cell = worksheet.Cells[row, col]; object convertedValue = ExcelResolverUtil.ConvertCellValue(cell, fieldData.type, classCodeData.className); - FieldInfo fieldInfo = soType.GetField(fieldData.varName); + FieldInfo fieldInfo = dataSOType.GetField(fieldData.varName); if (fieldInfo == null) throw new Exception($"{classCodeData.className}中不存在字段:{fieldData.varName}"); fieldInfo.SetValue(instance, convertedValue); } diff --git a/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteSOData.cs.meta b/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteDataSO.cs.meta similarity index 100% rename from Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteSOData.cs.meta rename to Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteDataSO.cs.meta diff --git a/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteUtilSO.cs b/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteUtilSO.cs new file mode 100644 index 0000000..6a8ea69 --- /dev/null +++ b/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteUtilSO.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; + +namespace Tools.ExcelResolver.Editor +{ + public sealed partial class ExcelResolverEditorWindow + { + private void WriteUtilSO(string path, Type dataSOType, List assets, ClassCodeData classCodeData) + { + var utilName = $"{classCodeData.className}Util"; + var utilPath = $"{path}/_{utilName}.asset"; + + Type utilType = ExcelResolverUtil.GetOrCacheTypeByName(utilName); + + var instance = AssetDatabase.LoadAssetAtPath(utilPath); + if (instance == null) + { + instance = ScriptableObject.CreateInstance(utilName); + AssetDatabase.CreateAsset(instance, utilPath); + } + + switch (classCodeData.tableType) + { + case TableType.SingleKeyTable: + var keyField = classCodeData.keyField[0]; + var dict = (IDictionary)Activator.CreateInstance(typeof(Dictionary<,>).MakeGenericType(keyField.type.RealType, dataSOType)); + + var keyFieldInfo = dataSOType.GetField(keyField.varName); + foreach (var asset in assets) + { + var key = keyFieldInfo.GetValue(asset); + dict[key] = asset; + } + instance.GetType().GetField("Data").SetValue(instance, dict); + break; + case TableType.UnionMultiKeyTable: + break; + case TableType.MultiKeyTable: + break; + case TableType.NotKetTable: + break; + case TableType.ColumnTable: + break; + } + EditorUtility.SetDirty(instance); + } + } +} \ No newline at end of file diff --git a/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteUtilSO.cs.meta b/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteUtilSO.cs.meta new file mode 100644 index 0000000..4b3220b --- /dev/null +++ b/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteUtilSO.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 3b78262c18a44a04af02c750d7628d02 +timeCreated: 1737914896 \ No newline at end of file diff --git a/Assets/_Project/ExcelResolver/Excel/hero.xlsx b/Assets/_Project/ExcelResolver/Excel/hero.xlsx index 14728ee35eeac48eb026334fea8787b97e8d064c..b3cf3bf748a9655ade50134e1b8f9f75a246c034 100644 GIT binary patch delta 2390 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 ZlMpLK0(lFQ5i1pwY%3K8$|e8+006zcM@Rqw diff --git a/Assets/_Project/ScriptableObject/Excel/Hero/Hero_5.asset b/Assets/_Project/ScriptableObject/Excel/Hero/Hero_6.asset similarity index 97% rename from Assets/_Project/ScriptableObject/Excel/Hero/Hero_5.asset rename to Assets/_Project/ScriptableObject/Excel/Hero/Hero_6.asset index 24af453..5b99bd0 100644 --- a/Assets/_Project/ScriptableObject/Excel/Hero/Hero_5.asset +++ b/Assets/_Project/ScriptableObject/Excel/Hero/Hero_6.asset @@ -10,7 +10,7 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: e8aa3c1560079b84cafbabe4bc0d2c8d, type: 3} - m_Name: Hero_5 + m_Name: Hero_6 m_EditorClassIdentifier: serializationData: SerializedFormat: 2 @@ -67,9 +67,9 @@ MonoBehaviour: - Name: Entry: 8 Data: - id: 5 + id: 6 name: - icon: + icon: hero_6 has: 0 hp: 0 atk: 0 diff --git a/Assets/_Project/ScriptableObject/Excel/Hero/Hero_5.asset.meta b/Assets/_Project/ScriptableObject/Excel/Hero/Hero_6.asset.meta similarity index 79% rename from Assets/_Project/ScriptableObject/Excel/Hero/Hero_5.asset.meta rename to Assets/_Project/ScriptableObject/Excel/Hero/Hero_6.asset.meta index 545c6ac..ff9650f 100644 --- a/Assets/_Project/ScriptableObject/Excel/Hero/Hero_5.asset.meta +++ b/Assets/_Project/ScriptableObject/Excel/Hero/Hero_6.asset.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: c7b7eb46a7ca8244890947b043ee79ab +guid: fd4758da888e8054b897780d3fa8f13a NativeFormatImporter: externalObjects: {} mainObjectFileID: 11400000 diff --git a/Assets/_Project/ScriptableObject/Excel/Hero/_HeroUtil.asset b/Assets/_Project/ScriptableObject/Excel/Hero/_HeroUtil.asset new file mode 100644 index 0000000..bf8a38d --- /dev/null +++ b/Assets/_Project/ScriptableObject/Excel/Hero/_HeroUtil.asset @@ -0,0 +1,95 @@ +%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: 0b8ec7437f31db141b138472f0c2a3aa, type: 3} + m_Name: _HeroUtil + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: + - {fileID: 11400000, guid: 3b98756cd197195498b14b5e67935cbe, type: 2} + - {fileID: 11400000, guid: cdde19489f16dce429041c1d6e207864, type: 2} + - {fileID: 11400000, guid: 934bc10c06f0592419baf474987cc0a7, type: 2} + - {fileID: 11400000, guid: fd4758da888e8054b897780d3fa8f13a, type: 2} + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: + - Name: Data + Entry: 7 + Data: 0|System.Collections.Generic.Dictionary`2[[System.Int32, mscorlib],[Tools.ExcelResolver.Hero, + Assembly-CSharp]], mscorlib + - Name: comparer + Entry: 7 + Data: 1|System.Collections.Generic.GenericEqualityComparer`1[[System.Int32, + mscorlib]], mscorlib + - Name: + Entry: 8 + Data: + - Name: + Entry: 12 + Data: 4 + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 3 + Data: 1 + - Name: $v + Entry: 10 + Data: 0 + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 3 + Data: 2 + - Name: $v + Entry: 10 + Data: 1 + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 3 + Data: 3 + - Name: $v + Entry: 10 + Data: 2 + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 3 + Data: 6 + - Name: $v + Entry: 10 + Data: 3 + - Name: + Entry: 8 + Data: + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: diff --git a/Assets/_Project/ScriptableObject/Excel/Hero/_HeroUtil.asset.meta b/Assets/_Project/ScriptableObject/Excel/Hero/_HeroUtil.asset.meta new file mode 100644 index 0000000..9fd9511 --- /dev/null +++ b/Assets/_Project/ScriptableObject/Excel/Hero/_HeroUtil.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 05ad337119e018146aff00aa4e9e09b5 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: