Version: 2018.4
public static void IgnoreCollision (Collider2D collider1, Collider2D collider2, bool ignore= true);

パラメーター

collider1 collider2 と比較する最初のコライダー
collider2 collider1 と比較する2つ目のコライダー
ignore collider1collider2 のペア間の衝突/トリガーを検知するか無視するようにします

説明

collider1collider2 のペア間の衝突/トリガーを検知するか無視するようにします

選択されたコライダー間のいかなる衝突判定も無視します。つまり、すべての衝突判定とトリガー判定が起こらなくなります。まず最初に衝突レイヤーで2つのレイヤーが接触できるか確認し、その後接触が起こらないようにします。それらの処理の次に、特定のコライダーが作用しないようにします。

IgnoreCollision にはいくつかの制約があります:

1) It is not persistent. This means that the ignore collision state will not be stored in the editor when saving a Scene. 2) You can only apply the ignore collision to colliders in active game objects. When deactivating the collider the IgnoreCollision state will be lost and you have to call Physics2D.IgnoreCollision again. See Also: Physics2D.GetIgnoreCollision, Physics2D.IgnoreLayerCollision.

using UnityEngine;

public class Example : MonoBehaviour { // Instantiate a bullet and make it ignore collisions with this object.

Transform bulletPrefab;

void Start() { var bullet = Instantiate(bulletPrefab) as Transform; Physics2D.IgnoreCollision(bullet.GetComponent<Collider2D>(), GetComponent<Collider2D>()); } }