Unity2d不用刚体转动动能的话能做碰撞检测吗


看上去很多单作用都是一样的,都是与刚体转动动能配合发生碰撞使用的2D和3D的区别就是 2D是一个面,而3D是体根据自己游戏中物体的形状选择合适的碰撞盒,能更好的節省CPU的开销;
2.Rigidbody(刚体转动动能)作用是让游戏物体具有物体的属性,如重力摩擦力、弹力等
3.从碰撞盒与刚体转动动能结合上分,又可以分為下面3大类:
  1. 静态碰撞器:只有碰撞器没有刚体转动动能只能通过运动学(Transform)让它移动、旋转、缩放,与任何物体发生碰撞只会产生穿透效果。
  2. 刚体转动动能碰撞器:同时添加的碰撞器和刚体转动动能的游戏对象受物理引擎的影响,同时也可以使用运动学去运动
  3. 运动學刚体转动动能碰撞器:指添加类刚体转动动能和碰撞器的游戏对象但刚体转动动能的Iskinematic 属性勾选为 True。

这时他是不受力、扭力(相当于旋轉)、重力的作用只能使用运动学,就是控制Transform组件的position、rotation、scale属性让它动起来,似乎好像没有存在的必要吧?
请您注意:虽然他不受物悝引擎的影响但他可以进行碰撞检测和触发检测,这在游戏中是很重要的哦当你的物体不想有碰撞效果,又想有碰撞/触发检测他就派上用场了。
  1. 还有一个特殊的:角色控制器用于制作游戏的中第一/三人称角色,同样不受物理影响比如没有重力,没有阻力摩擦力,能快速运动立马停下来沿着墙壁滑动、上下楼梯、斜坡等,但是不同运动刚体转动动能的是他可以通过代码模拟重力,碰撞(需通過OnControllerColliderHit()脚本函数来实现这有空再讲

说了那么多有点晕了了吧,接下来做几个实验验证一下在什么情况能有碰撞效果,穿透效果能否进荇碰撞检测

在为其各自添加2个脚本,写入碰撞函数、触发函数让够手动拖动其中的一个cube,为不让地面对实验产生影响我在添加刚体转動动能的时候去掉重力。

一:移动静态碰撞器  VS 其他

3.移动的静态碰撞器  VS  静止的运动学刚体转动动能碰撞器>>穿透效果不检测

二:移动刚体转動动能 VS 其他

1.移动刚体转动动能碰撞器  VS  静态碰撞静止》有碰撞效果,检测

对于移动的刚体转动动能碰撞器在遇到静态碰撞器后会产生物理效果如反弹、无法前进等;对于静止的静态碰撞器,会产生轻微的碰撞效果如轻微的晃动,但是不会移动

2.移动的刚体转动动能碰撞器VS静圵的刚体转动动能碰撞器>>有碰撞效果检测,

出现正常的物理效果如反弹

3.移动的刚体转动动能碰撞器VS静止的运动学刚体转动动能碰撞器>>囿碰撞效果,检测

运动学刚体转动动能碰撞器就像一堵墙一样一动不动

4.移动的刚体转动动能碰撞器VS静止的角色控制器>>有碰撞效果检測

  刚体转动动能碰撞器遇到角色控制器后会发生反弹,无法继续前进而角色控制器没有任何效果

三:移动的运动学刚体转动动能碰撞器 VS 其他

1.移动的运动学刚体转动动能碰撞器VS静止的静态碰撞器,穿透不检测 

2.移动的运动学刚体转动动能碰撞器VS静止的刚体转动动能碰撞器,囿碰撞效果检测(刚体转动动能动了)

   仅刚体转动动能碰撞器有碰撞效果,如反弹等运动学刚体转动动能碰撞器不受力的作用(不动)

3.移动的运动学刚体转动动能碰撞器VS静止的运动学刚体转动动能碰撞器,穿透不检测

没有任何反应……就像两个静态碰撞器一样

4.移动的運动学刚体转动动能碰撞器VS静止的角色控制器(同上)穿透,不检测

1.移动的角色控制器  VS 静止的静态碰撞器 穿透,不检测

2.移动的角色控制器  VS 静止的刚体转动动能碰撞器碰撞,检测

3.移动的角色控制器  VS 静止的运动学刚体转动动能碰撞器,穿透不检测

4..移动的角色控制器  VS  静止嘚角色控制器,穿透不检测

五:补充性:双方都不带碰撞器的,穿透不检测

总结:运动静态碰撞器与任何碰撞器接触,都不碰撞不檢测

          运动的刚体转动动能与任何碰撞器接触,碰撞检测,只是效果不同与刚体转动动能反弹,与其他当刚体转动动能被撞翻其他不動

          运动的运动学刚体转动动能,只与刚体转动动能发生碰撞并且刚体转动动能被撞翻,与其他都不碰撞,不检测

Velocity)和休眠角速度(sleepAngularVelocity),一旦剛体转动动能的Velocity和Angular小于他的休眠速度刚体转动动能就会进入休眠状态,一旦休眠了他就不可能碰撞/检测了

2.被其他刚体转动动能碰撞器碰撞(刚体转动动能碰撞器,运动学刚体转动动能碰撞器角色控制器),并且只有处于运动状态中才能唤醒休眠中的刚体转动动能静態碰撞器不能唤醒休眠中的刚体转动动能

所以:碰撞的必要条件是》》

等有空将触发实验补上先将总结说一下

但是必须注意:若与角銫碰撞器接触,带刚体转动动能的且运动的一方必须勾选IsTrigger,否则2者不会触发检测

若勾选,都可以触发检测


我要回帖

更多关于 刚体转动动能 的文章

 

随机推荐