在U3D中没有碰撞器,那么物体之间就会悬浮,不会有日常的一些逻辑效果。
碰撞器(Collider)类型##
1、静态碰撞器(Mesh Collider):静态物体,墙,地面;
2、非静态碰撞器:Box Collider,Capsuls Collider........;
碰撞器与刚体的关系##
碰撞器不需要刚体,刚体发生碰撞一定需要碰撞器。
碰撞器决定了碰撞发生的边界条件,刚体决定了碰撞发生后物体的运动效果。
碰撞发生需要的条件##
1、碰撞的2个物体必须都有Collider;
2、碰撞的2个物体必须至少其中一个物体带有刚体(Rigidbody);
3、碰撞的2个物体必须有相对运动;
看运动效果
带刚体的发生物理现象,未带刚体的则没有物理现象。
1、带刚体cube撞未带刚体的cube
2、未带刚体cube撞带刚体的cube
2个带有刚体的小球碰撞
2个未带有刚体的小球碰撞
碰撞器的三个方法#
1、Void OnCollisionEnter(){ "刚开始碰撞" };
2、Void OnCollisionStay(){ ''碰撞中" };
3、Void OnCollisionExit(){ "离开碰撞" };
触发事件发生的条件##
1、2个物体必须都带有Collider;
2、2个物体至少有一个有刚体;
3、2个物体至少有一个IsTrigger;
触发器的三个方法#
1、Void OnTriggerEnter(){ "进入触发" };
2、Void OnTriggerStay(){ ''持续触发" };
3、Void OnTriggerExit(){ "离开触发" };
带有触发器的cube与地面发生触发效果
1个触发器与1个没有触发器,都带有刚体
带有触发器的cube与没有触发器的cube 发生触发效果
1个触发器取消了Kinematic与1个没有触发器,都带有刚体
总结
碰撞事件和触发事件不能同时发生,只能发生其中的一件事情。
触发事件只是碰撞事件的一个属性。如果既要检测到物体的接触又不想让碰撞检测影响物体移动或要检测一个物件是否经过空间中的某个区域这时就可以用到触发器。