2017-03-01 26 views
0

我有一個跳躍向前的球員。我在路上也有樹。當玩家試圖向後或側身移入樹中時,我不能。但是,當我向前移動時,我直接穿過物體並向側面移動。我檢查與硬幣和汽車的碰撞,這兩個工作只是與我橫過的樹木一起工作。爲什麼玩家只有在向前移動時纔會穿過物體?

void OnTriggerEnter (Collider col) { 

else if (col.gameObject.name == "tree1(Clone)" || col.gameObject.name == "tree2(Clone)" || 
       col.gameObject.name == "tree3(Clone)" || col.gameObject.name == "tree4(Clone)") { 
     charController.canMove = false; 
     if (gameObject.name == "LeftCollider" && charController.lastJump == JumpDirection.left) { // left collider 
      charController.endPosition.z -= CharController.jumpDistance; 
     } else if (gameObject.name == "RightCollider" && charController.lastJump == JumpDirection.right) { // right collider 
      charController.endPosition.z += CharController.jumpDistance; 
     } else if (gameObject.name == "FrontCollider" && charController.lastJump == JumpDirection.up) { // front collider 
      charController.endPosition.x -= CharController.jumpDistance; 
      environmentMaker.collideFront = true; 
      environmentMaker.charRoadPos--; 
     } else if (gameObject.name == "BackCollider" && charController.lastJump == JumpDirection.down) { // back collider 
      charController.endPosition.x += CharController.jumpDistance; 
     } 

正面/左面/右面/背面/對撞機只是我的玩家前面的物體。

+0

還值得注意的是,不要指定每個可能的對象,你不想讓你移動通過你可以檢查對象的標籤。如果你創建一個名爲「Trees」的標籤,它只是一張支票。 if(col.gameobject.tag ==「Trees」){charController.canMove = false;} –

回答

0

你只是使用Bounds而不是製造許多對撞機。

3

如果您希望您的對象不會從其他對象傳遞過來,那麼您應該使用colldier而不使用isTrigger檢查(isTrigger應該爲false)並使用OnCollisionEnter事件代替OnTriggerEnter。

相關問題