UE5 小知识点 —— 07 - 碰撞

目录

一、碰撞前提条件

1.1 添加碰撞(双方都需要)

1.1.1 直接为静态网格体添加碰撞,然后添加在蓝图类中

1.1.2 在蓝图类中为静态网格体添加 Collision 组件

1.2 设置根组件(存疑)

 二、自定义 Trace Channel / Object Type

三、碰撞概述


一、碰撞前提条件

1.1 添加碰撞(双方都需要)
1.1.1 直接为静态网格体添加碰撞,然后添加在蓝图类中

1.1.2 在蓝图类中为静态网格体添加 Collision 组件

【总结】以上两种情况效果是相同的。另外补充一句,引擎自带的静态网格体(如球体等)本身是有碰撞的。

1.2 设置根组件(存疑)

做过一个案例,角色向前发射一枚箭矢,并扎到墙壁中。我已经添加好碰撞,并设置为双方阻挡,但箭矢依旧会穿过墙壁。经过一系列尝试,得出以下结论。

箭矢(主动方)需要将 Collision Component 或 静态网格体(本身携带碰撞)设置为根组件。

墙壁(被动方)将 Collision Component 或 静态网格体(本身携带碰撞)设置为根组件都是没有效果的。可以不做处理。

这里比较疑惑,希望大神解答。

【补充】对于角色蓝图(大部分情况下是主动方),Capsule Component 本身就是根组件,所以不会出现问题。

【补充】之前做了个案例,角色蓝图的骨骼网格体下有一个武器,给武器添加碰撞,使其攻击敌人。这样就不满足设置为根组件了,但依旧能执行事件命中(而且令人疑惑的是敌人必须要胶囊体进行设置重叠/阻挡)。难道此时主被动方交换了吗?

 二、自定义 Trace Channel / Object Type

【编辑】-【项目设置】-【Collision】- 新建自定义 Trace Channel / Object Type。

三、碰撞概述

现在有一个场景,角色向前方墙壁发射子弹。

  1. 如果两者都设置为阻挡,子弹会撞到墙壁上。(哪一方开启 Simulation Generates Hit Events,哪一方就能执行阻挡事件命中。逐帧执行
  2. 如果一个设置为阻挡 / 重叠,另一个设置为重叠,子弹会穿过墙壁。两者需要同时启用 Generate Overlap Events 才能执行重叠事件命中(默认启用)。
  3. 如果一个设置为重叠,另一个设置为忽略,子弹会穿过墙壁。但不会触发阻挡 / 重叠事件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值