From fbefdcb7942935f6be81e16a1d1a90b06afe4995 Mon Sep 17 00:00:00 2001 From: coffee <985942825@qq.com> Date: Mon, 3 Feb 2025 17:25:36 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BA=B5=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Editor/Core/Data/FieldData.cs | 6 +- .../ExcelResolverEditorWindow.ReadExcel.cs | 55 +++++++++++++----- ...ExcelResolverEditorWindow.WriteDataCode.cs | 5 +- .../ExcelResolverEditorWindow.WriteDataSO.cs | 17 ++++-- ...ExcelResolverEditorWindow.WriteUtilCode.cs | 8 ++- .../ExcelResolverEditorWindow.WriteUtilSO.cs | 40 ++++++++++++- Assets/_Project/ExcelResolver/Excel/com.xlsx | Bin 0 -> 11149 bytes .../ExcelResolver/Excel/com.xlsx.meta | 7 +++ .../_Project/ScriptableObject/Excel/Com.meta | 8 +++ .../ScriptableObject/Excel/Com/_ComUtil.asset | 26 +++++++++ .../Excel/Com/_ComUtil.asset.meta | 8 +++ .../Scripts/Generator/Excel/ComUtil.cs | 38 ++++++++++++ .../Scripts/Generator/Excel/ComUtil.cs.meta | 2 + 13 files changed, 196 insertions(+), 24 deletions(-) create mode 100644 Assets/_Project/ExcelResolver/Excel/com.xlsx create mode 100644 Assets/_Project/ExcelResolver/Excel/com.xlsx.meta create mode 100644 Assets/_Project/ScriptableObject/Excel/Com.meta create mode 100644 Assets/_Project/ScriptableObject/Excel/Com/_ComUtil.asset create mode 100644 Assets/_Project/ScriptableObject/Excel/Com/_ComUtil.asset.meta create mode 100644 Assets/_Project/Scripts/Generator/Excel/ComUtil.cs create mode 100644 Assets/_Project/Scripts/Generator/Excel/ComUtil.cs.meta diff --git a/Assets/Unity-Tools/ExcelResolver/Editor/Core/Data/FieldData.cs b/Assets/Unity-Tools/ExcelResolver/Editor/Core/Data/FieldData.cs index 0195c0e..544fc30 100644 --- a/Assets/Unity-Tools/ExcelResolver/Editor/Core/Data/FieldData.cs +++ b/Assets/Unity-Tools/ExcelResolver/Editor/Core/Data/FieldData.cs @@ -5,6 +5,10 @@ namespace Tools.ExcelResolver.Editor { internal class FieldData : IDisposable { + /// + /// 行索引 + /// 如果是纵表,这个值表示列索引 + /// public int colIndex; public string varName; @@ -14,7 +18,7 @@ namespace Tools.ExcelResolver.Editor public string description; public string path; - internal CodeMemberField GetCodeField() + internal CodeMemberField GetCodeMemberField() { CodeMemberField codeField = new CodeMemberField { diff --git a/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.ReadExcel.cs b/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.ReadExcel.cs index c8fb720..ec24838 100644 --- a/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.ReadExcel.cs +++ b/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.ReadExcel.cs @@ -55,7 +55,7 @@ namespace Tools.ExcelResolver.Editor if (!onlyGetClassCodeData) { WriteDataCode(classCodeData); - WriteSOCode(classCodeData); + WriteUtilCode(classCodeData); } classCodeDataDict.Add(worksheet, classCodeData); Debug.Log($"读取Excel文件:'{excelFile.Name}',并生成代码"); @@ -205,23 +205,48 @@ namespace Tools.ExcelResolver.Editor private Dictionary GetFieldData(ExcelWorksheet worksheet, ClassCodeData classCodeData) { var fieldDatas = new Dictionary(); - - for (int col = 2; col <= worksheet.Dimension.End.Column; col++) + + // 横表 + if (!worksheet.Cells[1, 1].Text.Contains("ColumnTable", StringComparison.OrdinalIgnoreCase)) { - var cellText = worksheet.Cells[2, col].Text; - if (string.IsNullOrEmpty(cellText) || cellText == "##") continue; + for (int col = 2; col <= worksheet.Dimension.End.Column; col++) + { + var varText = worksheet.Cells[2, col].Text; + if (string.IsNullOrEmpty(varText) || varText == "##") continue; - FieldData fieldData = new FieldData + FieldData fieldData = new FieldData + { + colIndex = col, + varName = varText, + // typeString = worksheet.Cells[3, col].Text, + type = ExcelResolverUtil.GetTTypeByString(worksheet.Cells[3, col].Text, worksheet.Cells[3, col], classCodeData.className), + info = worksheet.Cells[4, col].Text, + description = worksheet.Cells[5, col].Text, + path = worksheet.Cells[6, col].Text, + }; + fieldDatas.Add(col, fieldData); + } + } + // 纵表 + else + { + for (int row = 2; row <= worksheet.Dimension.End.Row; row++) { - colIndex = col, - varName = cellText, - // typeString = worksheet.Cells[3, col].Text, - type = ExcelResolverUtil.GetTTypeByString(worksheet.Cells[3, col].Text, worksheet.Cells[3, col], classCodeData.className), - info = worksheet.Cells[4, col].Text, - description = worksheet.Cells[5, col].Text, - path = worksheet.Cells[6, col].Text, - }; - fieldDatas.Add(col, fieldData); + var varText = worksheet.Cells[row, 1].Text; + if (string.IsNullOrEmpty(varText) || varText.StartsWith("##")) continue; + + FieldData fieldData = new FieldData + { + colIndex = row, + varName = varText, + // typeString = worksheet.Cells[row, 2].Text, + type = ExcelResolverUtil.GetTTypeByString(worksheet.Cells[row, 2].Text, worksheet.Cells[row, 2], classCodeData.className), + info = worksheet.Cells[row, 4].Text, + description = worksheet.Cells[row, 5].Text, + path = worksheet.Cells[row, 6].Text, + }; + fieldDatas.Add(row, fieldData); + } } // 判断是否有重复的varName diff --git a/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteDataCode.cs b/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteDataCode.cs index 3d867e1..2e5c28f 100644 --- a/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteDataCode.cs +++ b/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteDataCode.cs @@ -14,6 +14,9 @@ namespace Tools.ExcelResolver.Editor { private void WriteDataCode(ClassCodeData classCodeData) { + // 纵表不生成Data类 + if (classCodeData.tableType == TableType.ColumnTable) return; + string outputPath = $"{excelResolverConfig.CodePathRoot}/{classCodeData.className}.cs"; CodeCompileUnit compileUnit = new CodeCompileUnit(); @@ -65,7 +68,7 @@ namespace Tools.ExcelResolver.Editor foreach (var field in classCodeData.fields.Values) { - classType.Members.Add(field.GetCodeField()); + classType.Members.Add(field.GetCodeMemberField()); } #endregion diff --git a/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteDataSO.cs b/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteDataSO.cs index 3ec6cb9..0737228 100644 --- a/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteDataSO.cs +++ b/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteDataSO.cs @@ -30,6 +30,14 @@ namespace Tools.ExcelResolver.Editor var path = $"{excelResolverConfig.SOPathRoot}/{classCodeData.className}/"; DirectoryUtil.MakeSureDirectory(path); + + // 纵表不生成Data类,直接生成Util类 + if (classCodeData.tableType == TableType.ColumnTable) + { + WriteUtilSO(path, worksheet, classCodeData); + continue; + } + string[] assetGuids = AssetDatabase.FindAssets($"t:{dataName}", new[] { path }); Dictionary originAssets = new(); for (int i = 0; i < assetGuids.Length; i++) @@ -54,7 +62,7 @@ namespace Tools.ExcelResolver.Editor if (originAssets.ContainsKey(assetName)) { - set(originAssets[assetName], worksheet, row, classCodeData); + setValue(originAssets[assetName], worksheet, row, classCodeData); EditorUtility.SetDirty(originAssets[assetName]); Debug.Log($"刷新:{assetName}", originAssets[assetName]); result.Add(originAssets[assetName]); @@ -63,7 +71,7 @@ namespace Tools.ExcelResolver.Editor else { ScriptableObject instance = ScriptableObject.CreateInstance(dataName); - set(instance, worksheet, row, classCodeData); + setValue(instance, worksheet, row, classCodeData); AssetDatabase.CreateAsset(instance, fullPath); Debug.Log($"创建:{assetName}", instance); result.Add(instance); @@ -83,7 +91,8 @@ namespace Tools.ExcelResolver.Editor GC.Collect(); GC.WaitForPendingFinalizers(); - void set(ScriptableObject instance, ExcelWorksheet worksheet, int row, ClassCodeData classCodeData) + // 横表 + void setValue(ScriptableObject instance, ExcelWorksheet worksheet, int row, ClassCodeData classCodeData) { foreach (var pair in classCodeData.fields) { @@ -128,8 +137,6 @@ namespace Tools.ExcelResolver.Editor } case TableType.NotKetTable: return $"{classCodeData.className}_{row}"; - case TableType.ColumnTable: - return $"{classCodeData.className}_{classCodeData.fields[2].varName}"; } diff --git a/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteUtilCode.cs b/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteUtilCode.cs index c4996a6..1b4f01e 100644 --- a/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteUtilCode.cs +++ b/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteUtilCode.cs @@ -10,7 +10,7 @@ namespace Tools.ExcelResolver.Editor { public sealed partial class ExcelResolverEditorWindow { - private void WriteSOCode(ClassCodeData classCodeData) + private void WriteUtilCode(ClassCodeData classCodeData) { string outputPath = $"{excelResolverConfig.CodePathRoot}/{classCodeData.className}Util.cs"; CodeCompileUnit compileUnit = new CodeCompileUnit(); @@ -119,7 +119,13 @@ namespace Tools.ExcelResolver.Editor break; } case TableType.ColumnTable: + { + foreach (var fieldData in classCodeData.fields.Values) + { + codeFields.Add(fieldData.GetCodeMemberField()); + } break; + } } foreach (var codeField in codeFields) diff --git a/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteUtilSO.cs b/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteUtilSO.cs index 69f6e35..6a1be88 100644 --- a/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteUtilSO.cs +++ b/Assets/Unity-Tools/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteUtilSO.cs @@ -2,6 +2,8 @@ using System.Collections; using System.Collections.Generic; using System.Linq; +using System.Reflection; +using OfficeOpenXml; using UnityEditor; using UnityEngine; @@ -160,9 +162,45 @@ namespace Tools.ExcelResolver.Editor break; } case TableType.ColumnTable: - break; + throw new ArgumentException("ColumnTable 应该使用另一个WriteUtilSO方法."); + } + EditorUtility.SetDirty(instance); + } + + private void WriteUtilSO(string path, ExcelWorksheet worksheet, ClassCodeData classCodeData) + { + if (classCodeData.tableType != TableType.ColumnTable) + throw new ArgumentException("只有ColumnTable才能使用此方法."); + + var utilName = $"{classCodeData.className}Util"; + var utilPath = $"{path}/_{utilName}.asset"; + + var instance = AssetDatabase.LoadAssetAtPath(utilPath); + if (instance == null) + { + instance = ScriptableObject.CreateInstance(utilName); + AssetDatabase.CreateAsset(instance, utilPath); } + + setValue(instance, worksheet, classCodeData); + EditorUtility.SetDirty(instance); + + // 纵表 + void setValue(ScriptableObject instance, ExcelWorksheet worksheet, ClassCodeData classCodeData) + { + foreach (var pair in classCodeData.fields) + { + var row = pair.Key; + var fieldData = pair.Value; + + var cell = worksheet.Cells[row, 3]; + object convertedValue = ExcelResolverUtil.ConvertCellValue(cell, fieldData.type, classCodeData.className); + FieldInfo fieldInfo = instance.GetType().GetField(fieldData.varName); + if (fieldInfo == null) throw new Exception($"{classCodeData.className}中不存在字段:{fieldData.varName}"); + fieldInfo.SetValue(instance, convertedValue); + } + } } } } \ No newline at end of file diff --git a/Assets/_Project/ExcelResolver/Excel/com.xlsx b/Assets/_Project/ExcelResolver/Excel/com.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..dd12bf4cf55245a31167e1531c5eb40dab494014 GIT binary patch literal 11149 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 literal 0 HcmV?d00001 diff --git a/Assets/_Project/ExcelResolver/Excel/com.xlsx.meta b/Assets/_Project/ExcelResolver/Excel/com.xlsx.meta new file mode 100644 index 0000000..629a8c7 --- /dev/null +++ b/Assets/_Project/ExcelResolver/Excel/com.xlsx.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c603f54d33a16b74f96c74e8b403ca0b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Project/ScriptableObject/Excel/Com.meta b/Assets/_Project/ScriptableObject/Excel/Com.meta new file mode 100644 index 0000000..1826f9d --- /dev/null +++ b/Assets/_Project/ScriptableObject/Excel/Com.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5d697dbce85032d4dba2a90d7bb50290 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Project/ScriptableObject/Excel/Com/_ComUtil.asset b/Assets/_Project/ScriptableObject/Excel/Com/_ComUtil.asset new file mode 100644 index 0000000..7886603 --- /dev/null +++ b/Assets/_Project/ScriptableObject/Excel/Com/_ComUtil.asset @@ -0,0 +1,26 @@ +%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: 65d0d896e6a9aba4c86524d1ead223f2, type: 3} + m_Name: _ComUtil + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + cangku_chushi: 3 + des_xishu: 2 + ta_chushi_unlock: 01000000cc00000091010000cb000000 diff --git a/Assets/_Project/ScriptableObject/Excel/Com/_ComUtil.asset.meta b/Assets/_Project/ScriptableObject/Excel/Com/_ComUtil.asset.meta new file mode 100644 index 0000000..8a6c35f --- /dev/null +++ b/Assets/_Project/ScriptableObject/Excel/Com/_ComUtil.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7ee0eb7708acae845ae0445697042da4 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Project/Scripts/Generator/Excel/ComUtil.cs b/Assets/_Project/Scripts/Generator/Excel/ComUtil.cs new file mode 100644 index 0000000..9d6fd43 --- /dev/null +++ b/Assets/_Project/Scripts/Generator/Excel/ComUtil.cs @@ -0,0 +1,38 @@ +//------------------------------------------------------------------------------ +// +// 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 ComUtil : SerializedScriptableObject, IExcelSOUtil + { + + /// + /// 初始仓库空位数 + /// + public int cangku_chushi; + + /// + /// 防御系数 + /// + public int des_xishu; + + /// + /// 初始解锁的塔 + /// + public List ta_chushi_unlock; + } +} diff --git a/Assets/_Project/Scripts/Generator/Excel/ComUtil.cs.meta b/Assets/_Project/Scripts/Generator/Excel/ComUtil.cs.meta new file mode 100644 index 0000000..0090571 --- /dev/null +++ b/Assets/_Project/Scripts/Generator/Excel/ComUtil.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 65d0d896e6a9aba4c86524d1ead223f2 \ No newline at end of file