Physics2D.IgnoreCollision
Declaration
public static void IgnoreCollision(Collider2D collider1, Collider2D collider2, bool ignore = true);Параметры
| Параметр | Описание |
|---|---|
| collider1 | Первый Collider для сравнения с collider2. |
| collider2 | Второй Collider для сравнения с collider1. |
| игнорировать | Следует ли игнорировать столкновения/триггеры между collider1 и collider2. |
Описание
Заставляет систему обнаружения столкновений игнорировать все столкновения/триггеры между collider1 и collider2.
Игнорирование столкновений относится к любому типу взаимодействия между выбранными Коллайдерами i.e. Не будет происходить ни столкновения, ни взаимодействия с триггерами. Коллизионные слои сначала проверяются, чтобы убедиться, что два слоя могут взаимодействовать, а если нет, то взаимодействия не происходят. После этого будут происходить игнорирование определенных взаимодействий Коллайдеров.
IgnoreCollision имеет несколько ограничений: 1) Он не сохраняется. Это значит, что состояние игнорирования столкновений не будет сохранено в редакторе при сохранении сцены. 2) Игнорирование столкновений можно применять только к коллайдерам активных игровых объектов. При отключении коллайдера состояние IgnoreCollision теряется, и вам придётся снова вызвать Physics2D.IgnoreCollision. Дополнительные ресурсы: 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>()); } }