两个字符控制器之间的碰撞检测

时间:2013-02-23 09:50:25

标签: unity3d collision-detection

我是Unity和脚本新手。我有两个玩家,都使用角色控制器。我做过这件事

  • 我使用过onControllerColliderHit函数。
  • 我打印的名称就像这个gameobj.name。
  • 它将显示它所点击的对象的名称

但问题是它通过了它。我希望它无法通过它,它的行为就像刚体一样。就像必须有第二个玩家击中它的力量一样。

1 个答案:

答案 0 :(得分:1)

检查doc。 CharacterController原样没有附加RigidBody

  

角色控制器主要用于第三人称或第三人称   没有使用Rigidbody的第一人称玩家控制   物理

基本上CharacterController只是Collisor设计用于防止场景中角色和对象之间的竞争,但是在2 CharacterControllers之间发生碰撞时无法正常工作。

特别地:

  

控制器本身不会对力作出反应,也不会   自动推动刚体。

OnControllerColliderHit文档中所示,您可以在发生这种情况时手动处理冲突。例如,由于你有移动方向,你可以在角色控制器对象碰撞时相互推开:

Vector3 pushDir = new Vector3(hit.moveDirection.x, 0, hit.moveDirection.z);
transform.Translate (-pushDir * offset);