如果遇到类试这样的报错,一般是include的头文件出错。 头文件里加上 #include "YouClassName.Generated.h" GENEATED_UCLASS_BODY,GENERATED_BODY宏 这两个宏是虚幻的反射系统用来生成反射相关代码的,如果你的结构体或是类使用了USTRUCT()或是UCLASS(),类里就必须加入这两个宏的一个。并且头文件也需要#include"fi...
这句前面。这句必须是所有#include的最后一个,否则报错找不到GENERATED_BODY。 CrimsonDark 默默无闻 1 确实是因为GENERATED_BODY()的行数变了就会报错因为在ClassName.generated.h中是依赖GENERATED_BODY()的行数的只要把ClassName.generated.h中所有的h_12改成当前GENERATED_BODY()所在行数的数字就不会报错了。
一、GENERATED_BODY() 如果定义的是GENERATED_BODY(),那么意味着我不需要使用父类的构造函数,也就是说,我不能直接使用父类的声明,但是,我需要去实现的时候,我就必须自己去声明,否则就会报错。 然后就可以在CPP中实现自己声明的这个构造函数,编译通过。 如果不去声明自己的构造函数,就会报错: 二、GENERATED_UCLASS_...
一、GENERATED_BODY() 如果定义的是GENERATED_BODY(),那么意味着我不需要使用父类的构造函数,也就是说,我不能直接使用父类的声明,但是,我需要去实现的时候,我就必须自己去声明,否则就会报错。 然后就可以在CPP中实现自己声明的这个构造函数,编译通过。 如果不去声明自己的构造函数,就会报错: 二、GENERATED_UCLASS_...
// 直接用宏定义在顶部声明就可以了DECLARE_DELEGATE(FLearningDelegate);classXXX_APIALearnDelegateActor:publicAActor{GENERATED_BODY()public:// ... 省略public:// 单播委托带有UPROPERTY宏,不能添加BlueprintAssignable标识符,动态多播才可以声明BlueprintAssignableFTestDelegate FLearningDelegate;} ...
GENERATED_BODY() (现在一般都用这个了,另外一个属于比较老的版本) 如果定义的是GENERATED_BODY(),那么意味着我不需要使用父类的构造函数,也就是说,我不能直接使用父类的声明,但是,我需要去实现的时候,我就必须自己去声明,否则就会报错。 UCLASS()classMYCHARACTER_APIAMyCharacter :publicACharacter ...
{GENERATED_BODY()public:// Sets default values for this component's propertiesUNewActorComponent1();protected:// Called when the game startsvirtualvoidBeginPlay()override;public:// Called every framevirtualvoidTickComponent(floatDeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFuncti...
GENERATED_BODY() public: // Sets default values for this actor's properties ATestActor2(); protected: // Called when the game starts or when spawned virtual void BeginPlay() override; public: // Called every frame virtual void Tick(float DeltaTime) override; ...
这样说来,GENERATED_BODY在函数中的作用就是一个宏定义。 也就是说:CollidingPawnMovementComponent.h的头文件类声明说这样来代替: 声明一下,这样写UE4 的编译机制编译不过。 因为在HeaderParse.cpp中的4869行和4875行, 有这样的判断: FError::Throwf(TEXT("Expected a GENERATED_BODY() at thestartofclass"))...
GENERATED_BODY() UFUNCTION(BlueprintCallable, meta = (DisplayName = "SaveRenderTargetToFile", Keywords = "SaveRenderTargetToFile"), Category = "SaveToFile") static bool SaveRenderTargetToFile(UTextureRenderTarget2D* rt, const FString& fileDestination); ...