OnComponentBeginOverlap.AddDynamic 的编译错误【UE4】
来源:互联网 发布:ubuntu解压缩命令 .gz 编辑:程序博客网 时间:2024/06/03 19:50
以 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 ! "));}
1 0
- OnComponentBeginOverlap.AddDynamic 的编译错误【UE4】
- OnComponentBeginOverlap.AddDynamic 的编译错误【UE4】
- UE4教程中的.AddDynamic(...)编译错误的问题
- UE4 AddDynamic报错解决
- UE4 编译错误 error C4605
- UE4的编译配置详解
- UE4的编译配置详解
- UE4的编译配置详解
- UE4 不同版本编译常见错误及解决方法
- 如何编译UE4的NXGI引擎
- **UE4 插件编译及使用的问题**
- UE4 Blueprint编译过程
- UE4 编译虚幻引擎
- UE4自编译UE4Editor
- UE4编译专用服务器
- UE4编译专用服务器
- UE4 编译配置详解
- UE4 编译独立服务器
- 一个抢红包的PHP库:redenvelope
- 去除 Hive 表中数据的引号
- Android开发中的二维码扫描功能
- https的加密解密过程
- Android 开发:(一)安卓开发环境搭建与配置 (Windows和Mac )以及目录结构介绍
- OnComponentBeginOverlap.AddDynamic 的编译错误【UE4】
- CSS选择器
- 【转】谈谈对 Web 安全的理解
- AndroidStudio HttpEntity,NameValuePair,BasicNameValuePair不能正常导入包
- jquery 异步回调的写法 / deferred对象详解
- Java零基础如何学好Java语言从新手快速入门
- Redis之环境搭建
- leetcode No300. Longest Increasing Subsequence
- Gradle 庖丁解牛(构建源头源码浅析)