3.2 KiB
3.2 KiB
IncludePath
- 功能描述: 记录UClass的引用路径
- 使用位置: UCLASS
- 引擎模块: UHT
- 元数据类型: string="abc"
- 限制类型: UCLASS上的信息
- 常用程度: 0
记录UClass的引用路径。
开发者一般也不用管这个值。
有一个作用是在UHT生成.gen.cpp的时候,在头文件部分方便引用到该类的头文件。
测试代码:
UCLASS(BlueprintType)
class INSIDER_API UMyProperty_Template :public UObject
{
GENERATED_BODY()
public:
UFUNCTION(BlueprintCallable)
int32 MyFunc(FString str){return 0;}
UPROPERTY(EditAnywhere, BlueprintReadWrite)
int32 MyProperty = 123;
};
其类型信息:
[class MyProperty_Template Class->Struct->Field->Object /Script/Insider.MyProperty_Template]
(BlueprintType = true, IncludePath = Property/MyProperty_Template.h, ModuleRelativePath = Property/MyProperty_Template.h)
ObjectFlags: RF_Public | RF_Standalone | RF_Transient
Outer: Package /Script/Insider
ClassHierarchy: MyProperty_Template:Object
ClassFlags: CLASS_MatchedSerializers | CLASS_Native | CLASS_RequiredAPI | CLASS_TokenStreamAssembled | CLASS_Intrinsic | CLASS_Constructed
Size: 56
Within: Object
ClassConfigName: Engine
{
(Category = MyProperty_Template, ModuleRelativePath = Property/MyProperty_Template.h)
48-[4] int32 MyProperty;
PropertyFlags: CPF_Edit | CPF_BlueprintVisible | CPF_ZeroConstructor | CPF_IsPlainOldData | CPF_NoDestructor | CPF_HasGetValueTypeHash | CPF_NativeAccessSpecifierPublic
ObjectFlags: RF_Public | RF_MarkAsNative | RF_Transient
Outer: Class /Script/Insider.MyProperty_Template
Path: IntProperty /Script/Insider.MyProperty_Template:MyProperty
[func MyFunc Function->Struct->Field->Object /Script/Insider.MyProperty_Template:MyFunc]
(ModuleRelativePath = Property/MyProperty_Template.h)
ObjectFlags: RF_Public | RF_Transient
Outer: Class /Script/Insider.MyProperty_Template
FunctionFlags: FUNC_Final | FUNC_Native | FUNC_Public | FUNC_BlueprintCallable
NumParms: 2
ParmsSize: 20
ReturnValueOffset: 16
RPCId: 0
RPCResponseId: 0
public int32 MyFunc(FString str)final;
{
0-[16] FString str;
PropertyFlags: CPF_Parm | CPF_ZeroConstructor | CPF_HasGetValueTypeHash | CPF_NativeAccessSpecifierPublic
ObjectFlags: RF_Public | RF_MarkAsNative | RF_Transient
Outer: Function /Script/Insider.MyProperty_Template:MyFunc
Path: StrProperty /Script/Insider.MyProperty_Template:MyFunc:str
16-[4] int32 ReturnValue;
PropertyFlags: CPF_Parm | CPF_OutParm | CPF_ZeroConstructor | CPF_ReturnParm | CPF_IsPlainOldData | CPF_NoDestructor | CPF_HasGetValueTypeHash | CPF_NativeAccessSpecifierPublic
ObjectFlags: RF_Public | RF_MarkAsNative | RF_Transient
Outer: Function /Script/Insider.MyProperty_Template:MyFunc
Path: IntProperty /Script/Insider.MyProperty_Template:MyFunc:ReturnValue
};
};
原理:
同样也是在UHT中分析后添加的。具体的逻辑值请见ModuleRelativePath中的原理代码部分。
protected override void UhtClass::ResolveSuper(UhtResolvePhase resolvePhase)
{
switch (ClassType)
{
case UhtClassType.Class:
{
MetaData.Add(UhtNames.IncludePath, HeaderFile.IncludeFilePath);
}
}
}