2017-01-22 7 views
0

私はOnTriggerStay2D()関数を使用していますが、コライダー内のオブジェクト(何に関係なく)が動作しています。しかし、時々私は別のものを持っているので、2人のコライダーがそのコライダーの中にとどまることがあります。 2人のコライダーは同じGame Objectにいません。 私はこのようにしようとしている:Unity - OnTriggerStay2D()2つのコライダーの同時実行

void OnTriggerStay2D(Collider2D other) 
{ 
    if (other.gameObject.CompareTag("Obj1")) 
    { 
     //do something 
    } 
    if (other.gameObject.CompareTag("Obj2")) 
    { 
     //do something else 
    } 
} 

しかしObj1が内側にすでにあるときがちょうど起きたことがない何かを行います。 OnTriggerStay2D()のために一度に2つのコライダーをコライダー感覚にする方法は?

EDITは、明確にする:

まだ呼び出されますOnTriggerStay2D()。問題は、コードがifの文に届かないということです。私はに何か他のことをしてください。コメント

+0

オブジェクトが既に衝突している場合、 'OnTriggerStay2D'は再び呼び出されません。これが偽の場合は、質問を編集してさらに説明してください。 – Programmer

+0

いいえ、私は正確には_do何かelse_は起こらないと言いました。これは、コードが「if」ステートメントに「入らない」ことを意味します。 – agiro

+0

@Programmerが編集しました。混乱させて申し訳ありません。 – agiro

答えて

1

OnTriggerStay2D関数が呼び出されると、触っている複数のGameObjectsは報告されません。 1つのトリガ/ Collider2D情報のみを返します。次の物理フレームの後、それは再び呼び出されます。今回は、同じGameObjectに触れている他のトリガ/ Collider2D情報を返します。 Obj1とが返された後OBJ2が戻ってあなたの場合

は、OnTriggerStay2Dは、次の物理フレームにまたはそう呼ばれます。

関連する問題