Unity 6.3
0 онлайн 63 гостей 3 в системе
Вход

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>()); } }