unity不规则碰撞_碰撞算法

碰撞算法一般在很多物理引擎里面都能看到其身影

物理引擎

物理引擎都有基本的 碰撞,刚体,重力等基本功能

PhysX:  unity引擎和ue4引擎使用

Havok:  Frostbite(寒霜) 引擎使用 还有大名鼎鼎的<<塞尔达荒野之息>> 也是使用的这个

Box2D:  cocos 2D引擎使用 愤怒的小鸟使用

Chipmunk:  cocos 2d引擎使用

其中physx 和havok为3D物理引擎. 更有很多复杂功能 水(流体),爆炸模拟(粒子),衣服布料模拟(软体)等等.

碰撞体

如 我们游戏开发目前使用最多的unity使用的physx

physx中的碰撞体collider

1. box collider

2. Sphere collider

3. Capsule collider

4. Mesh collider除了meshCollider 是不规则的形状 来判断碰撞,同时为了性能 物理引擎也本身限制了 mesh collider不超过200个面其他几个 collider都很好理解

碰撞原理

言归正传说到碰撞算法 以上介绍的物理引擎 其实都是开源的 可以下载源码看到里面的内部实现.  可以看到各种引擎的碰撞算法几乎都是一致的.

无非就是把物理放入各种包围盒, 再判断包围盒的范围判断出碰撞

包围盒种类

1. AABB包围盒

2. sphere包围球

3. obb方向包围盒

4. fdh固定方向凸包

aabb包围盒检查碰撞

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Unity中的碰撞通常是基于几何形状(如球、盒子、胶囊)来定义的,因此它们都是规则的。但是,如果你需要一个不规则碰撞,例如一个复杂的几何形状或者一个非凸多边形,你可以使用Mesh Collider来实现。 Mesh Collider是一种使用网格来定义碰撞的组件。它可以使用网格渲染器组件中的网格数据,或者使用自定义的网格数据来创建不规则碰撞。在使用Mesh Collider时,你需要确保网格是封闭的,也就是说没有任何开口或断裂。 如果你需要动态地创建不规则碰撞,你可以使用Physics API来手动创建和管理碰撞。这种方法需要更多的编程工作,但是可以实现更高级的碰撞效果。 总的来说,Unity提供了多种方法来创建不规则碰撞,你可以根据自己的需求选择最适合的方法。 ### 回答2: Unity中的不规则碰撞是指不能简单地用基本的几何形状(如方块、圆形等)来描述的碰撞。在游戏开发中,不规则碰撞通常是由复杂的多边形、曲线等形状构成的。 为了实现不规则碰撞Unity提供了多种方法。其中一种常用的方法是通过使用多边形碰撞组件来实现。这个组件可以与自定义的多边形形状一起使用,以便在游戏中检测和处理与其碰撞的物。 另一种方法是使用物理引擎的边界包围盒(Bounds)来检测不规则碰撞。物的边界包围盒是一个可以包裹物的最小立方或最小球。物在游戏中的碰撞检测通常通过比较边界包围盒之间的重叠程度来进行判断。 除了以上方法外,还可以使用Unity碰撞检测回调函数来自定义不规则碰撞的行为。通过编写脚本,在碰撞发生时执行特定的逻辑,例如触发特效、改变物属性等。 不规则碰撞在游戏开发中非常重要,因为它可以增加游戏的真实感和复杂性。比如在一个平台跳跃的游戏中,玩家角色和平台之间的碰撞就是不规则碰撞,它们的形状可以与实际的游戏对象相匹配。 总而言之,Unity提供了多种实现不规则碰撞的方法,开发者可以根据需要选择和使用。这些方法的应用可以使游戏更加真实、有趣和具有挑战性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值