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

Parameters

collider1要与 collider2 比较的第一个碰撞体。
collider2要与 collider1 比较的第二个碰撞体。
ignore是否应忽略 collider1collider2 之间的碰撞/触发器。

Description

使碰撞检测系统忽略 collider1collider2 之间的所有碰撞/触发器。

忽略碰撞指的是忽略所选碰撞体之间的任何类型的相互作用,即不发生碰撞或触发交互。首先检查碰撞层以了解两个层能否交互,如果不能,则不发生相互作用。之后,忽略特定的碰撞体交互。

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) 您只能将忽略碰撞应用于活动游戏对象中的碰撞体。 停用碰撞体时,IgnoreCollision 状态将丢失,您必须重新调用 Physics2D.IgnoreCollision。 另请参阅:Physics2D.GetIgnoreCollisionPhysics2D.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>()); } }