2013-02-23 93 views
2

我是Unity和脚本编程的新手。我有两个玩家,都使用角色控制器。我已经做了这件事两个字符控制器之间的碰撞检测

  • 我已经使用onControllerColliderHit函数。
  • 我打印出像这个gameobj.name这样的名字。
  • 它会显示该对象的,它击中

但问题是,它通过它的名字。我希望它不能通过它,它的行为就像刚体一样。就像第二位玩家击中它一定有效力。

回答

1

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

的角色管理,主要用于第三人称或 第一人称的播放器控制,不使用刚体物理 的。

基本上CharacterController只是Collisor设计用于防止在场景中人物和物体之间compenetration,但是当碰撞2 CharacterControllers之间出现像您期望不起作用。

特别:

控制器不应对自身的力量,它不会自动 刚体推走。在OnControllerColliderHit文档

像所示,当这种情况发生时,你可以手动处理冲突。例如,您可以在相互碰撞时将角色控制器对象彼此推开,因为您有移动方向:

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