diff --git a/Client/Assets/Scripts/Data/DefinePack.cs b/Client/Assets/Scripts/Data/DefinePack.cs
index 550229e..8d84a4d 100644
--- a/Client/Assets/Scripts/Data/DefinePack.cs
+++ b/Client/Assets/Scripts/Data/DefinePack.cs
@@ -152,8 +152,25 @@ namespace Data
// Debug.Log($"插入{className},{def.defName}");
}
}
-
- private static Define LoadDefineClass(XElement defineDoc,string className)
+ ///
+ /// 根据指定的 XML 元素 () 和类名 (),
+ /// 动态加载并初始化一个继承自 的类实例。
+ ///
+ /// 包含类定义的 XML 元素 ()。
+ /// 目标类的全限定名或简短名称。
+ ///
+ /// 如果成功加载并初始化,则返回对应的 类实例;
+ /// 否则返回 null。
+ ///
+ ///
+ /// 如果 或 为 null 或空字符串,则抛出此异常。
+ ///
+ ///
+ /// 该方法通过反射动态加载指定类,并检查其是否继承自 。
+ /// 如果类存在且满足条件,则尝试调用其 方法进行初始化。
+ /// 如果初始化失败,则使用默认初始化方法 ()。
+ ///
+ public static Define LoadDefineClass(XElement defineDoc,string className)
{
var assembly = Assembly.GetExecutingAssembly();
@@ -210,7 +227,22 @@ namespace Data
return define;
}
-
+ ///
+ /// 初始化指定的 对象,根据 中的 XML 元素内容,
+ /// 将对应的字段值赋给 对象。
+ ///
+ /// 需要初始化的对象实例。
+ /// 包含字段定义的 XML 元素 ()。
+ /// 目标对象的类型 ()。
+ ///
+ /// 如果 、 或 为 null,则抛出此异常。
+ ///
+ ///
+ /// 该方法会遍历 的所有字段(包括公共和非公共字段),
+ /// 并尝试从 中找到与字段名称匹配的子元素。
+ /// 如果找到匹配的子元素,则将其值转换为字段的类型并赋值给字段。
+ /// 如果字段类型继承自 ,则递归调用 方法进行加载。
+ ///
public static void DefaultInitDefine(Define define,XElement defineDoc,Type defineType)
{
var fields = defineType.GetFields(BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic);
diff --git a/Client/Assets/Scripts/Managers/DefineManager.cs b/Client/Assets/Scripts/Managers/DefineManager.cs
index bdd79a2..1ced07d 100644
--- a/Client/Assets/Scripts/Managers/DefineManager.cs
+++ b/Client/Assets/Scripts/Managers/DefineManager.cs
@@ -12,7 +12,15 @@ namespace Managers
public Dictionary> defines = new();
public Dictionary packs = new();
-
+ ///
+ /// 初始化定义管理器,加载所有定义包并构建定义字典。
+ ///
+ ///
+ /// 该方法执行以下操作:
+ /// 1. 获取指定路径下的所有子文件夹,每个子文件夹代表一个定义包。
+ /// 2. 遍历每个定义包,尝试加载其中的定义数据。
+ /// 3. 将加载的定义数据按类型分类,并存储到定义字典中。
+ ///
public void Init()
{
var packFolder = Configs.ConfigProcessor.GetSubFolders(new(dataSetFilePath));