diff --git a/Client/Assets/Scripts/Data/DefinePack.cs b/Client/Assets/Scripts/Data/DefinePack.cs index b5c0b22..25e39cb 100644 --- a/Client/Assets/Scripts/Data/DefinePack.cs +++ b/Client/Assets/Scripts/Data/DefinePack.cs @@ -206,8 +206,14 @@ namespace Data } if (define.Init(defineDoc)) return define; - // 获取类的所有字段(不包括私有字段) - var fields = type.GetFields(BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic); + DefaultInitDefine(define,defineDoc, type); + + return define; + } + + public void DefaultInitDefine(Define define,XElement defineDoc,Type defineType) + { + var fields = defineType.GetFields(BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic); // 遍历字段并尝试从 XElement 中赋值 foreach (var field in fields) @@ -229,8 +235,6 @@ namespace Data Debug.LogWarning($"Error setting field {field.Name}: {ex.Message}"); } } - - return define; } ///