OnComponentBeginOverlap.AddDynamic 的编译错误【UE4】

简介: OnComponentBeginOverlap.AddDynamic 的编译错误【UE4】

以 Character 类为例,假设有 PacManCharacter 派生自 Character类


首先在 PacManCharacter.h 头文件中添加碰撞函数的声明:

OnCollision 为自定义的碰撞函数,名称可以任意,但参数形式必须满足以下条件

UFUNCTION()
void OnCollision(class AActor* OtherActor, class UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult);

然后在 PacManCharacter.cpp 文件中的 SetupPlayerInputComponent 函数中添加绑定函数:

GetCapsuleComponent()->OnComponentBeginOverlap.AddDynamic(this, &PacManCharacter::OnCollision);

碰撞函数的实现:

void PacManCharacter::OnCollision(class AActor* OtherActor, class UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult)
{
  GEngine->AddOnScreenDebugMessage(0, 1.0f, FColor::Red, TEXT("PacMan ! "));
}

但是以上是老版本的 UE4 支持的格式,编译会报参数类型不匹配的错误

image.png

新版本的 UE4 应该对碰撞函数进行如下声明和定义:

UFUNCTION()
void OnCollision(class UPrimitiveComponent* HitComp, class AActor* OtherActor, class UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult & SweepResult);
void PacManCharacter::OnCollision(class UPrimitiveComponent* HitComp, class AActor* OtherActor, class UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult)
{
  GEngine->AddOnScreenDebugMessage(0, 1.0f, FColor::Red, TEXT("PacMan ! "));
}

即增加了第一个参数  class UPrimitiveComponent* HitComp

目录
相关文章
16avalon - 指令ms-attr(属性绑定)
16avalon - 指令ms-attr(属性绑定)
69 1
|
6月前
|
C++
Qt定义属性类信息报错‘Qstring‘ was not declared in this scope; did you mean ‘xxx‘?并且还有有一堆报错,问题还出现在moc文件
Qt定义属性类信息报错‘Qstring‘ was not declared in this scope; did you mean ‘xxx‘?并且还有有一堆报错,问题还出现在moc文件
102 0
UE4 Editor 获得当前所有选择对象并打印
UE4 Editor 获得当前所有选择对象并打印
73 0
STM32 Keil工程中使用abs函数报警告 warning: #223-D: function "abs" declared implicitly
STM32 Keil工程中使用abs函数报警告 warning: #223-D: function "abs" declared implicitly
908 0
|
C++
error LNK2001: 无法解析的外部符号 _ft_sdf_renderer_class/ _ft_bitmap_sdf_renderer_class
error LNK2001: 无法解析的外部符号 _ft_sdf_renderer_class/ _ft_bitmap_sdf_renderer_class
113 0
VC下__func__未定义,改用__FUNCTION__
VC下__func__未定义,改用__FUNCTION__
92 0
|
C++
VS编译NPAPI:error C2065: “PCONTEXT”: 未声明的标识符
VS编译NPAPI:error C2065: “PCONTEXT”: 未声明的标识符
156 0
|
C++
VS编译NPAPI:jref类型出错
VS编译NPAPI:jref类型出错
52 0
编译OpenJDK12:freetypeScaler.obj error LINK2019 无法解析的外部符号
编译OpenJDK12:freetypeScaler.obj error LINK2019 无法解析的外部符号
93 0
|
C++
VS编译NPAPI:error C2733:不允许重载函数 “NP_Initialize"的第二个参数
VS编译NPAPI:error C2733:不允许重载函数 “NP_Initialize"的第二个参数
84 0