1

Unity3d の 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
   }
}

問題は、両方のループに入っていて、私が与えたものが間違っているのか、それとも私が与えた方法なのかわかりません。どこが間違っているのですか?

4

2 に答える 2

3

OnCollisionEnter イベントが発生している場合 (確認のためにプリントを追加できます)、タグとコライダーの 2 つを確認する必要があります。

タグ

試す

collision.transform.tag

また、ゲームオブジェクトに対して正しいタグを選択したことを確認してください。

コライダー

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

Box Collider Referenceを参照してください。下部には、衝突が発生する条件を説明する衝突アクション マトリックスがあるからです。

于 2012-01-11T13:13:38.707 に答える
0

Unityにタグを追加してください。おそらく、オブジェクトにタグを追加しないでしょう。tag1タグにとを追加tag2し、オブジェクトを選択して、tag1またはを選択してくださいtag2

ここに画像の説明を入力

于 2015-09-04T01:49:56.430 に答える