2012-01-11 3 views
1

Unity3dのonCollisionEnter関数に問題があります。事は、私は、別のオブジェクトとラベルをアクティブにする必要がありますboudaryオブジェクトと衝突する場合、第三者のコントローラがあります。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

は、ゲームオブジェクトまたは子ゲームオブジェクトに添付コライダーはありますか? –

答えて

3

OnCollisionEnterイベントは(あなたが確実にするプリントを追加することもできます)発射されている場合は、チェックするために二つのものがあります:タグとコライダーは

タグ

collision.transform.tag 
をお試しください

また、ゲームオブジェクトに適切なタグが選択されていることを確認してください。 Unity3Dで

コライダー

衝突コールバック(onCollisionEnter、など)のみ、特定の状況下で起こります。例:コライダーとリジッドボディーコンポーネントを持つgameobject(gameobject1)は、単にコライダーを持つ静的な(動かない)ゲームオブジェクト(gameobject2)と衝突します。

下部にある条件の衝突が発生したものを下に説明衝突アクション行列あるので、私はBox Collider Referenceになります。

0

Unityにタグを追加してください。オブジェクトにタグを追加していない可能性があります。タグにtag1tag2を追加してオブジェクトを選択し、tag1またはtag2を選択してください。

enter image description here

関連する問題