发生碰撞条件如下:
两个对象都有Collider组件且至少一个有Rigidbody组件
其中至少一个物体(必须运动的)必须带有碰撞器(collider)+刚体(Rigidbody),另一个物体(可以静止也可以运动)也必须至少带有collider
也有说一方有CharacterController,另一方有Collider,于是这里对 CharacterController做点补充。
CharacterController角色控制器允许你在受制于碰撞的情况下很容易的进行运动,而不用处理刚体。
角色控制器不受力的影响,仅仅当你调用Move函数时才运动。然后它将执行运动,但是受制于碰撞。
下面详解:
(1)添加了CharacterController组件后,人物将不受力影响,这时即使加上Rigidbody组件,并启用Use Gravity。
人物也不会受重力影响,在脚本中通过rigidbody对人物施加力也是无效的。也就是说CharacterController屏蔽了Rigidbody的所有属性和方法。
要控制CharacterController移动,可以通过在脚本中调用Move方法使其移动。
(2)虽然CharacterController不受力,但是有个例外是,它受碰撞的影响。
一般的碰撞发生条件是:碰撞的两个物体必须都有Collider,并且其中一个有Rigidbody。
但是如果一方有CharacterController,则不需要。
这时碰撞发生的条件为:
一方有CharacterController,另一方有Collider。CharacterControll