Unity3D 关于刚体(RigitBody)与碰撞体(Collider)的探索

时间:2021-03-12 05:04:12

刚体的研究

为了研究刚体与碰撞体这两个组件对游戏对象的影响,我进行了下面的实验:

Unity3D 关于刚体(RigitBody)与碰撞体(Collider)的探索,使用球体施加力的作用碰撞立方体。

方案一:

A:刚体 + 碰撞体

B:刚体 + 碰撞体

实验过程:给A一个普通力(或直接设置position属性或直接使用Translate位移),使A撞击B

实验结果:A与B均能收到碰撞事件,物理效果良好。


方案二:

A:刚体 + 碰撞体

B:碰撞体

实验过程:给A一个普通力(或直接设置position属性或直接使用Translate位移),使A撞击B

实验结果:A与B均能收到碰撞事件,A物理效果良好,但B就像个死东西一样,一动不动


方案三:

A:碰撞体

B:刚体 + 碰撞体

实验过程:给A直接设置position属性或直接使用Translate位移(当然,这里没法用力了,因为A连刚体都不是),是A撞击B

实验结果:A无事件收到,B只收到了Stay事件一次,A、B无物理效果,A直接穿越过去了。


方案四:

A:碰撞体

B:碰撞体

实验过程:给A直接设置position属性或直接使用Translate位移,使A撞击B

实验结果:A、B均无事件收到,A、B无物理效果,A直接穿越过去了。


小结:1.如果想让碰撞事件均收到且有物理效果,至少其中运动的一方有一个为刚体+碰撞体。

     2.在游戏中,如果游戏对象(主对象、场景对象)都是刚体,这样其实是对物理引擎效果的大消耗,所以可以只让游戏运动主对象是刚体,而像墙壁、树木这种场景对象只是碰撞体就够了。