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. 如果一个设置为重叠,另一个设置为忽略,子弹会穿过墙壁。但不会触发阻挡 / 重叠事件。

### UE5 中的碰撞检测与配置 在 Unreal Engine 5 (UE5) 中,碰撞检测是一项核心功能,广泛应用于物理模拟、触发事件和角色交互等方面。以下是关于碰撞检测及其配置的相关说明: #### 碰撞基础概念 动态碰撞体调整适用于游戏中的移动物体,如角色、车辆或可交互的物体[^1]。这表明,在设计游戏中涉及运动的对象时,合理配置其碰撞属性至关重要。 #### 碰撞对象分类 Unreal Engine 提供了几种类型的碰撞对象类别(Collision Object Types),用于定义不同物体之间的相互作用方式。常见的类别包括 `WorldStatic`、`WorldDynamic` 和 `Pawn` 等。每种类别的默认行为可以通过编辑器中的 **Physics & Collision** 设置面板进行修改。 #### 碰撞响应设置 为了实现特定的功能需求,开发者需要调整碰撞响应矩阵(Collision Response Matrix)。此矩阵决定了当两个具有不同碰撞类别的物体接触时的行为模式——即穿透、阻挡还是忽略彼此的存在。具体操作如下: - 打开任意 Actor 的细节面板。 - 转到 **Collision** 下拉菜单下的 **Object Type** 字段指定当前对象所属类别。 - 利用 **Custom Profile Settings** 定义更精细的规则集。 #### 实现方法举例 下面是一个简单的例子展示如何利用蓝图脚本来控制球形物体碰到墙壁后的反弹效果: ```blueprint Event BeginPlay() Set SphereComponent's OnComponentHit Event Active True Function HandleOnHit(OtherActor, OtherComp, NormalImpulse, HitResult) If OtherActor IsA StaticMeshActor Then Apply Impulse To This Actor In Direction Of -NormalImpulse * BounceFactor End If ``` 上述代码片段实现了基本的击打反馈逻辑[^4]。 #### 版本兼容性提示 对于使用不同版本引擎项目的插件安装,请注意官方文档推荐组合:如果采用的是 unreal engine 5.0,则应匹配 net3.1;而针对 unreal engine 5.1 ,则建议选用 net6.0作为配套环境构建工具链[^2]。 #### 学习资源链接 有兴趣深入学习的朋友可以从开源平台获取更多实战案例指导材料。“Unreal Engine 5 Game Development with C++ Scripting”的项目地址提供了详尽的教学视频和技术文章集合[^3],非常适合初学者入门并逐步掌握高级技巧。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值