2012-01-11 84 views
1

我在Unity3d中的onCollisionEnter函數有問題。事情是我有一個第三人稱控制器,如果與一個boudary物體相撞應該激活另一個gameobject和一個標籤。OnCollisionEnter不工作

這是多麼我已經給我的代碼

function OnCollisionEnter(collision : Collision) 
{ 
    if(collision.gameobject1.tag=="tag1") 
    { 
    // activate game object and label 
    } 
    if(collision.gameobject2.tag=="tag2") 
    { 
     // deactivate game object and label 
    } 
} 

的問題是,它是進入這兩個循環,我不知道我已經給是錯誤的或者我的方式給予。我哪裏錯了?

+0

連接到遊戲物體或孩子游戲物體的對撞機? – 2012-01-11 13:21:12

回答

3

如果OnCollisionEnter事件被解僱(你可以添加打印,以確保),則有兩件事情來檢查:標籤和對撞機

標籤

嘗試

collision.transform.tag 

同時驗證您是否已經爲該遊戲對象選擇了正確的標籤。

撞機

在Unity3D碰撞回調(onCollisionEnter等),只有在特定情況下發生的。 EX:具有碰撞器和剛體組件的遊戲物體(gameobject1)將與僅具有碰撞器的靜態(不移動)遊戲物體(遊戲物體2)相撞。

我會看Box Collider Reference,因爲底部是一個碰撞行爲矩陣,它解釋了碰撞發生的條件。

0

請給Unity添加標籤。也許你不要給對象添加標籤。請將tag1tag2添加到您的代碼中,選擇您的對象,然後選擇tag1tag2

enter image description here