Physics2D.IgnoreCollision

切换到手册
public static void IgnoreCollision (Collider2D collider1, Collider2D collider2, bool ignore= true);

参数

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

描述

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

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

IgnoreCollision 有一些限制: 1) IgnoreCollision 不是持久的。这意味着保存场景时忽略碰撞状态将不会存储在 Editor 中。 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>()); } }