2016-02-20 92 views
0

我有一個碰撞腳本附加到我的播放器(mainCamera)和子彈預製件。碰撞和碰撞器不能正常工作

void onCollisionEnter(Collision collision) 
{ 
    Debug.Log("Collision running"); 
    if(collision.gameObject.tag == "Enemy" && this.gameObject.tag == "MainCamera") 
    { 
     Debug.Log("Hit Enemy"); 
     if (Controller.Health > 0) 
     { 
      Controller.Health -= .2f; 
     } 
    } else if (collision.gameObject.tag == "Scenary" && this.gameObject.tag == "Bullet") 
    { 
     Debug.Log("Bullet hits Scenary"); 
     Destroy(this.gameObject); 
    } else if (collision.gameObject.tag == "Enemy" && this.gameObject.tag == "Bullet") 
    { 
     Debug.Log("Bullet hits Enemy"); 
     Destroy(this.gameObject); 
     EnemyScript.Health-=.2f; 
    } 

} 

我的調試日誌沒有被設置。我有適合所有物體的標籤,球體上的剛體和球體碰撞器,攝像機上的球體碰撞器,場景上的網格碰撞器和作爲立方體的敵人的盒子碰撞器。我沒有觸發器被打勾。子彈也有重力,並在某個點後下降。它可以與盒子碰撞並停止;然而,當它撞擊到牆面或地面時,子彈有時會落下或穿過,但有時也會起作用並撞擊牆壁並停止或撞擊地板並停留在那裏直到它被破壞。不完全確定問題出在哪裏。

+0

我發現了問題,它的OnCollisionEnter不是onCollisionEnter。然而,球體穿過地板和牆壁的問題仍然是一個問題。 – Emugod

+0

「我發現問題」,請**​​刪除問題**以節省版主的時間。如果您有新的實際問題,請繼續問一個新問題,具體問題 – Fattie

回答

0

與牆或地板的問題是,統一檢查固定更新中的物理,所以如果你不把固定更新中的移動等邏輯發生這個問題。 也嘗試這一點,添加物理材料到你的子彈。