2013-02-23 92 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);