图解如下:
刚体的研究【以下为转】
为了研究刚体与碰撞体这两个组件对游戏对象的影响,我进行了下面的实验:
,使用球体施加力的作用碰撞立方体。
方案一:
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. 在游戏中,如果游戏对象(主对象、场景对象)都是刚体,这样其实是对物理引擎效果的大消耗,所以可以只让游戏运动主对象 是刚体,而像墙壁、树木这种场景对象只是碰撞体就够了。
3、 刚体->刚体: 效果良好 ,相互有反应
刚体->碰撞体:效果良好,后者不移动(或者轻微的晃动)
碰撞体->刚体: 无效果,直接穿过
碰撞体->碰撞体:无效果,直接穿过