以 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 支持的格式,编译会报参数类型不匹配的错误

error C2664: 'void TBaseDynamicMulticastDelegate::__Internal_AddDynamic(UserClass *,void (__cdecl AItem::* )(UPrimitiveComponent *,AActor *,UPrimitiveComponent *,int32,bool,const FHitResult &),FName)':  cannot convert argument 2 from 'void (__cdecl AItem::* )(AActor *,UPrimitiveComponent *,int32,bool,const FHitResult &)'
to
'void (__cdecl AItem::* )(UPrimitiveComponent *,AActor *,UPrimitiveComponent *,int32,bool,const FHitResult &)'  

新版本的 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

转载于:https://www.cnblogs.com/timy/p/8645492.html

[UE4]OnComponentBeginOverlap.AddDynamic 的编译错误相关推荐

  1. (2110,5): warning MSB3245: 未能解析此引用。未能找到程序集“Windows”。请检查磁盘上是否存在该程序集。 如果您的代码需要此引用,则可能出现编译错误。

    最近打UE4的包的时候,总是失败.没办法只能各种搜索找答案解决,用了度娘.sougou.bing都没有找到理想的答案,最后没办法翻墙用google找答案,还好最后完美解决了. 下面是编译VS的erro ...

  2. 编译linux内核的错误,linux内核编译错误

    原标题:linux内核编译错误 内核版本:2.6.14 交叉编译器: -linux-gcc 4.3.3 错误: arch/arm/mm/alignment.c: In function 'proc_a ...

  3. vc 6.0常见编译错误及改正方法

    最常见VC++6.0编译错误信息集合 1.fatal error C1010: unexpected end of file while looking for precompiled header ...

  4. oracle创建过程带有编译错误,警告:创建的函数带有编译错误

    警告:创建的函数带有编译错误 下面是一个<Oracle Database Java Developer's Guide>上的例子: ---------------------------- ...

  5. 18.16 gcc-3.4.5编译错误及解决方法集锦

    18.16 gcc-3.4.5编译错误及解决方法集锦 参考文章: (1)18.16 gcc-3.4.5编译错误及解决方法集锦 (2)https://www.cnblogs.com/baixu/p/10 ...

  6. Eclipse Maven 编译错误 Dynamic Web Module 3.0 requires Java 1.6 or newer 解决方案

    Eclipse Maven 编译错误 Dynamic Web Module 3.0 requires Java 1.6 or newer 解决方案 参考文章: (1)Eclipse Maven 编译错 ...

  7. vs代码显示波浪线,但没编译错误

    参考:https://blog.csdn.net/everrisky/article/details/55833396 vs2015打开cocos2dx-3.14自带项目,代码显示波浪线,但没编译错误 ...

  8. Linux系统下GCC编译错误:“undefined reference to ‘sqrt‘”

    Linux系统下GCC编译错误:"undefined reference to 'sqrt'",解决方法:-lm 数学函数sqrt()位于libm.so库文件中(这些库文件通常位于 ...

  9. Introduction to 3D Game Programming with DirectX 12一书学习记录(第一个例子编译错误)

    准备开始学一学d3d,听说<Introduction to 3D Game Programming with DirectX 12>这本书不错,于是就拿来学一学.不料第一个例子,按照书中的 ...

最新文章

  1. 解决webpack打包bootstrap报字体不能解析问题
  2. java 调度服务器,Quartz Scheduler - 使用PostgreSQL服务器调度作业
  3. 015 Android之可执行文件dex
  4. 【JavaScript】appendChild一个的注意点之会删除原dom树节点
  5. “中国好创意” CCF全国青年大数据创新大赛启动仪式 暨大数据大师论坛议程...
  6. 新概念英语第三册01-20课(转)
  7. 字典:python的基础数据类型
  8. 陈国荣 计算机科学,信息工程中计算机网络技术的应用-网络技术论文-计算机论文(10页)-原创力文档...
  9. 仿京东商城源码java_Java+SSM实现类似京东的3C电子商城系统
  10. JavaWeb 学习路线
  11. LA4487 Exclusive-OR (加权并查集)
  12. Java并发编程:volatile关键字解析 by 海子
  13. 计算机一级考试ppt知识点,计算机一级考试考点:PPT演示文稿
  14. 中国农业机械融资租赁市场预测与投资战略报告(2021版)
  15. 【思维导图怎么画】万彩脑图大师教程 | 添加链接
  16. java 遍历出d盘所有文件_JAVA遍历一个文件夹中的所有文件
  17. Ribbon负载均衡服务调用
  18. 雷霆行动(STG飞机游戏)源码分析
  19. html代码正方形变椭圆,椭圆伸缩变换公式
  20. 安卓开发高仿QQ空间

热门文章

  1. 这种简历咋找工作?(运营)
  2. 为什么都开始流行将洗手台装在厕所外?
  3. 地球绕太阳一圈有多远
  4. 大多数项目能不能投资,能不能去创业,取决于自己是站在什么高度看问题
  5. 年轻人必须在北上广工作吗
  6. 二十六岁,裸辞之后,我步入了“三无”行列
  7. 可靠信道传输2.0 2.1 3.0
  8. Mybatis_day4_Mybatis的延迟加载
  9. filestream_SQL Server FILESTREAM内部概述
  10. 批量关停azure vm_创建Azure自动化以启动Azure VM