UE4中碰撞体的设置

背景:UE4 的碰撞设置有很多需要注意的点。从官方的例子里面有专门针对 实物actor 的碰撞设置。
此次在开发局域网游戏过程中,需要对actor 增加BoxCollsion 。但是针对以往的碰撞设置此次,全部失效。
在建刚同学的帮助下,使用新的碰撞方案实现效果.
…建刚分割线…
实现效果:

发射的子弹, 碰到tank 之后, 可以发生碰撞事件。

实现步骤:
1, 在项目设置中,
在这里插入图片描述
通过此路径,定义两种类型的碰撞类型。相应方式 : 阻挡(block), 重叠(Overlap),以及忽略(很少甬道)

我们针对 bullet 和tank 定义两种类型的碰撞体。

1,子弹蓝图碰撞设置 BP_Bullet

在这里插入图片描述
物体类型: 我们直接设定为对应的定义的。 选择子弹的即可。
响应: 设置相应的相应类型。为了避免和其他的物体发生干扰碰撞。我们设定其他大部分类型和子弹的 boxcollision 碰撞都忽略,只有tank 类型object type 可以产生 overlap 事件。
注意: 以上我们只是针对Box collsion 进行设置。 并且, Generate Overlap Events 需要勾选。

2, 坦克碰撞设置 BP_Tank
在这里插入图片描述
注意以上和 bullet 蓝图之间的对应关系。

经过测试:经过以上测试,实现精准的碰撞效果,排除了很多不必要的干扰。

越来越讨厌畏手畏脚的自己、慢慢的失去以前的任性不羁。

### UE4 中样条曲线网格碰撞检测解决方案 在 Unreal Engine 4 (UE4) 中处理样条曲线(Spline)及其关联的网格(Meshes)时,实现可靠的碰撞检测是一个常见的需求。为了确保样条上的物体能够正确响应物理环境中的其他对象,通常采用以下几种方法: #### 方法一:使用 Spline Mesh Component 的内置功能 UE4 提供了 `USplineComponent` 和 `USplineMeshComponent` 来创建复杂的路径结构。对于这些组件来说,默认情况下它们并不具备物理属性,因此需要手动启用。 通过设置 `bEnableCollision=true;` 可以为样条网格部件开启基本的静态碰撞支持[^1]。这一步骤允许引擎识别该部分作为潜在的障碍物参与场景内的交互计算过程。 ```cpp // C++ 示例代码片段用于激活单个 USplineMeshComponent 上的碰撞选项 void EnableSplineMeshCollision(USplineMeshComponent* splineMeshComp) { if (!splineMeshComp || !IsValid(splineMeshComp)) return; splineMeshComp->SetGenerateOverlapEvents(true); splineMeshComp->SetCanEverAffectNavigation(false); // 如果不需要影响导航,则关闭此选项以提高性能 } ``` #### 方法二:构建自定义碰撞积 当默认机制无法满足特定项目的需求时,开发者可以选择为每一段由样条生成的几何图形单独添加 Box 或 Capsule 形式的包围盒来模拟更精确的接触面。这种方法虽然增加了开发工作量但也提供了更高的灵活性和准确性。 利用蓝图可视化脚本或者C++编程接口,在每次更新样条位置之后动态调整附加于其末端的小型触发器的位置与尺寸,从而形成连续覆盖整条线路的有效防护层[^2]。 ```blueprint // Blueprint Visual Scripting Pseudo Code Snippet Event Tick(float DeltaSeconds) { foreach segment in SplineSegments do { UpdateTriggerBoxPositionAndSize(segment.StartPoint, segment.EndPoint); } } ``` #### 方法三:应用第三方插件或资产包扩展能力 考虑到某些特殊应用场景可能超出标准工具集所能提供的范围之外,市场上存在许多高质量的第三方资源可以帮助简化复杂任务。例如,“Dynamic Grass System” 插件不仅限于草地效果,还包含了高级地形编辑特性以及优化后的植被渲染技术,其中或许也涵盖了针对非平面表面如蜿蜒曲折的道路等特征设计的独特碰撞逻辑[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值