unity2D物理引擎之-Rigidbody 2D

时间:2018-06-06 11:34:16   收藏:0   阅读:210

虽然Rigidbody 2D大致上可以看成是Rigidbody的2D化,大部分功能也是一致的,但是还是有一些细节问题。

 

一些事项:

1.任何添加到同一个 GameObject身上或者其子物体身上的 2D Collider组件都隐式的 附属于 那个 Rigidbody 2D.

2.当一个Collider 2D组件附属到一个Rigidbody 2D身上时,它就跟随Rigidbody 2D移动。这时不应该通过直接设置Transform 或者 Collider的偏移量来 移动。

3.附属于同一个 Rigidbody 2D的所有 Collider 2D,它们相互是不会发生碰撞检测的。

 

刚体类型:

1. Rigidbody 2D 有三个类型:Dynamic、Kinematic、Static

2. 刚体类型主要影响一下几个要素:

  a. 移动行为(位置、旋转)

  b. 碰撞体交互

3. 注意一点,虽然Rigidbody 经常被描述成 是与其它 rigidbody 相互碰撞,但是实际上是 附加在Rigidbody上的Collider在进行碰撞检测,Rigidbody在没有Collider的情况下,是没法相互碰撞的。

4. 改变Rigidbody 2D的类型是一个比较麻烦的事情。当一个刚体类型改变,许多关联的变量会立马重置,并且需要重新赋值,而且与刚体关联的所有Collider需要在下一个FixiedUpdate之前重新认知,这样可能会导致奇怪的表现。

 

刚体类型: Dynamic

技术分享图片

概括来说,这种类型是为了 物理仿真运动而设计的。(让物体看起来更像现实世界行为)它的运动受重力、质量、其他力影响。并且这种类型会与其他所有刚体类型发生碰撞

刚体类型:Kinematic

技术分享图片

这种类型,物体移动也是在仿真下进行的,但是却是在 用户非常明确的控制 的前提下进行的。

 

注意

  1. 这种类型不受力、重力的影响

  2. 它使用Rigidbody2D.MovePosition or Rigidbody2D.MoveRotation API来移动。

  3. 它使用物理引擎来查询 碰撞,并且通过编程来决定物体如何移动。

  4. 实际上,这种类型仍然通过它的速度来移动,但是它的速度却不受其他任何力的影响。

  5. 这种类型 不会 与其它Kinematic或者Static类型发生碰撞检测

  6. 在碰撞过程中,这种类型的物体表现为不受力(质量无穷大)。

 

刚体类型:Static

技术分享图片

1. 它只与 Dynamic 类型的Rigidbody 发生碰撞.

2. 无法拥有两个 Static 的Rigidbody 2D。

 

原文:https://www.cnblogs.com/leiGameDesigner/p/9144058.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!