質問

unity3dのcollisionenter機能に問題があります。問題は、私が3人目のコントローラーを持っているということです。これらのコントローラーは、boudaryオブジェクトと衝突した場合、別のGameObjectとラベルをアクティブにする必要があります。

これが私のコードを与えた方法です

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

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

役に立ちましたか?

解決

OncollisionEnterイベントが発射されている場合(確かにプリントを追加できます)、チェックするものは2つあります。タグとコリダーがあります

タグ

試す

collision.transform.tag

また、GameObjectの適切なタグを選択したことを確認してください。

コリダー

Unity3Dでは、衝突コールバック(OncollisionEnterなど)は、特定の状況でのみ発生します。例:ColliderとrigidBodyコンポーネントを備えたGameObject(GameObject1)は、コライダーを持っている静的(移動しない)GameObject(GameObject2)と衝突します。

私は見ます ボックスコリダーリファレンス 一番下にあるからです 衝突アクションマトリックス それは、どの条件下で衝突が発生するかを説明しています。

他のヒント

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

enter image description here

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top