ARPG----C++学习记录05 Section10 碰撞,重叠事件

collision碰撞

  • Query only 仅查询。包括请求,扫描和重叠,扫描两个物体知否存在重叠
  • Physics Only 仅物理。重力,反弹等物理计算
  • 都开启

ARPG----C++学习记录05 Section10 碰撞,重叠事件_第1张图片

按下“~”输入show collision可以查看碰撞

给石块添加碰撞,Query可以阻挡人物过去,Physics阻挡不了,但是打开模拟物理,人可以把石头踢动。对于暗门,可以让它忽略pawn但是摄像机不会穿过门

Overlap重叠事件

球体碰撞重叠,回到Item.cpp和h,创建一个球体组件,绑定到root

在PrimitiveComponent.h找到overlap的相关参数,只要我们创建的函数绑定的名字正确就可以调用

  • FComponentBeginOverlapSignature ,UPrimitiveComponent 是开始重叠的签名,是类型
  • OnComponentBeginOverlap 委托的名字,接下来才是输入的6个参数
  • UPrimitiveComponent*, OverlappedComponent
  • AActor*, OtherActor
  • UPrimitiveComponent*, OtherComp
  • int32, OtherBodyIndex
  • bool, bFromSweep
  • const FHitResult &, SweepResult

创建函数复制参数,直接复制,删除逗号

使用AddDynamic绑定函数,让发生重叠时,让重叠的参数传到函数

重叠时打印名字

ARPG----C++学习记录05 Section10 碰撞,重叠事件_第2张图片

EndOverlap和上边的一样

查询一个函数的具体步骤可以如下

  • 查看 PrimitiveComponent.h
  • 搜索 OnComponentEndOverlap 查看委托的声明
  • 找出回调的函数签名
  • 在 Item 类中创建回调
  • 使用 AddDynamic 在 Item 的 BeginPlay 中绑定回调函数
  • 测试结束重叠!在屏幕中打印一条信息

你可能感兴趣的:(UE5,UE5,c++,学习,虚幻引擎)