diff --git a/Client/Assets/Scripts/Data/DefinePack.cs b/Client/Assets/Scripts/Data/DefinePack.cs index a97c21f..32b6e85 100644 --- a/Client/Assets/Scripts/Data/DefinePack.cs +++ b/Client/Assets/Scripts/Data/DefinePack.cs @@ -343,5 +343,23 @@ namespace Data // 如果字段的类型直接是基类或其派生类,则返回 true return fieldType != baseType && baseType.IsAssignableFrom(fieldType); } + + /// + /// 检查字段的类型是否继承自指定的类 + /// + /// 字段信息 + /// 要检查的基类类型 + /// 如果字段的类型是基类或其派生类,则返回 true + public static bool IsFieldTypeInheritedFrom(FieldInfo field, Type baseType) + { + // 获取字段的类型 + var fieldType = field.FieldType; + // 如果字段的类型为 null 或不是基类的派生类,则返回 false + if (!baseType.IsAssignableFrom(fieldType)) + return false; + + // 如果字段的类型直接是基类或其派生类,则返回 true + return fieldType != baseType && baseType.IsAssignableFrom(fieldType); + } } } \ No newline at end of file