Unity 5 c# を使用しており、2 つのトリガー コライダーを持つゲーム オブジェクトがあり、そのうちの 1 つは別の場所にあります。OnTriggerStay2D と OnTriggerEnter2D を使用できるようにする必要がありますが、入力されているトリガーを見つける必要があります。現在、1 つ目 (ポリゴン) トリガーを入力すると、2 つ目 (ボックス) に対して OnTriggerEnter がアクティブになります。2つのコライダーを区別するにはどうすればよいですか???
public void OnTriggerEnter2D(Collider2D other) //2nd collider trigger
{
if (other.tag == "Player") {
Found = true; //if the player is in shooting range
Idle = false;
}
}
public void OnTriggerStay2D(Collider2D other) //1st collider trigger
{
if (Found != true) {
if (other.tag == "Player") {
Shield = true;
Idle = false;
}
}
}
public void OnTriggerExit2D(Collider2D other) //2nd collider trigger
{
if (other.tag == "Player") {
Found = false;
Shield = false;
Shooting = false;
Idle = true;
}
}
最初のトリガーを public void OnTriggerStay2D(PolygonCollider2D other) にしようとしましたが、「このメッセージ パラメータは次のタイプである必要があります: Collider2D メッセージは無視されます」と表示されます。
私がやろうとしているのは、ゲームオブジェクトの前にポリゴントリガーを配置し、ゲームオブジェクトの近くに別のボックストリガーを配置することです。そのため、ゲームオブジェクトに近づくと、最初のトリガーに入り、シールドを上げますが、それに近づくと(射程範囲内で)シールドを下ろし、あなたを撃ち始めます。