GENERATED_BODY 如果使用这个宏,表示不会使用父类的构造函数,不能直接使用父类的声明。必须自己声明默认的构造函数。 GENEATED_UCLASS_BODY 这个表示你会使用父类的构造函数,且不需要在.h声明构造函数,在.cpp中实现即可 ClssName::ClssName(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer) {...
这句前面。这句必须是所有#include的最后一个,否则报错找不到GENERATED_BODY。 CrimsonDark 默默无闻 1 确实是因为GENERATED_BODY()的行数变了就会报错因为在ClassName.generated.h中是依赖GENERATED_BODY()的行数的只要把ClassName.generated.h中所有的h_12改成当前GENERATED_BODY()所在行数的数字就不会报错了。
// This pair of macros is used to help implement GENERATED_BODY() and GENERATED_USTRUCT_BODY() #define BODY_MACRO_COMBINE_INNER(A,B,C,D) A##B##C##D #define BODY_MACRO_COMBINE(A,B,C,D) BODY_MACRO_COMBINE_INNER(A,B,C,D) #define GENERATED_BODY_LEGACY(...) BODY_MACRO_COMBINE(C...
GENERATED_BODY()宏的定义及展开 GENERATED_BODY宏定义在头文件: Engine\Source\Runtime\CoreUObject\Public\UObject\ObjectMacros.h 中。 下面是该文件的部分代码: // This pair of macros is used to help implement GENERATED_BODY() and GENERATED_USTRUCT_BODY()#define BODY_MACRO_COMBINE_INNER(A,B,C,D...
一、GENERATED_BODY() 如果定义的是GENERATED_BODY(),那么意味着我不需要使用父类的构造函数,也就是说,我不能直接使用父类的声明,但是,我需要去实现的时候,我就必须自己去声明,否则就会报错。 然后就可以在CPP中实现自己声明的这个构造函数,编译通过。
GENERATED_BODY ———> BODY_MACRO_COMBINE ———> BODY_MACRO_COMBINE_INNER———>A##B##C##D ##在宏里的意思是合并两个string, 那么A##B##C##D 也就是CURRENT_FILE_ID_,__LINE__,_GENERATED_BODY 经过别人博客的提示,在generated.h最后一行有 #undef ...
GENERATED_BODY() (现在一般都用这个了,另外一个属于比较老的版本) 如果定义的是GENERATED_BODY(),那么意味着我不需要使用父类的构造函数,也就是说,我不能直接使用父类的声明,但是,我需要去实现的时候,我就必须自己去声明,否则就会报错。 UCLASS()
GENERATED_UCLASS_BODY(): 如果定义的是GENERATED_UCLASS_BODY(),那么意味着我使用父类的构造函数,也就是说,我不需要为自己声明构造函数,直接去实现父类声明那个构造函数,那么在CPP文件中去实现,而不需要在H里面去声明。 总结:属于之前版本的宏,自动生成带有指定参数的构造函数,不用用户再头文件中生明构造函数,需...
GENERATED_BODY() public: // 定义一个可反射的函数 UFUNCTION(BluprintCallable) void MyFunc(); private: // 定义一个可反射的变量 UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess = "true")) int MyIntValue; } 反射类型结构总览 ...
GENERATED_BODY() public: //导入dll,BlueprintCallable入表示蓝图可以调用,这是UE的基础应该了解 UFUNCTION(BlueprintCallable,Category="My DLL Library") static bool importDLL(FStringfolder,FString name); //获取dll中的方法的指针 UFUNCTION(BlueprintCallable,Category="My DLL Library") ...