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

Collider2D.contactCaptureLayers

Declaration

public LayerMask contactCaptureLayers;

Описание

Слои других Collider2D, участвующих в контактах с этим Collider2D, которые будут захвачены.

Контакты создаёт физическая система, и по ним вычисляется поведение — например, реакция на столкновение. Обрабатываются они автоматически, а захватывать их нужно только для выполнения физических запросов по ним или для формирования физических обратных вызовов. По умолчанию захватываются и сохраняются контакты всех слоёв, но это увеличивает время обработки и расход памяти. Выбор только нужных слоёв повышает производительность и снижает потребление памяти, однако контакты незахваченных слоёв будут недоступны в физических запросах и не будут порождать физических обратных вызовов.

Настроив конкретные слои, для которых вы хотите выполнять запросы или получать обратные вызовы, вы гарантируете, что ответы придут только от выбранных слоёв. Это позволяет писать более специализированные скрипты, поскольку можно исходить из того, что доступны только определённые слои.

Важно понимать, что захват контактов не влияет на реакцию на столкновение, так как контакты всегда будут обрабатываться системой физики до захвата.

Это физические запросы, которые требуют захвата контактов:

Это все физические обратные вызова, которые требуют захвата контактов:

NOTES:

  • Это свойство не контролирует, будут ли контакты Collider2D вступать в контакт или нет, но просто определяет, будут ли полученные контакты захватываться для запросов и обратных вызовов.
  • Даже если все слои выбраны в Collider2D.callbackLayers, только те, которые были захвачены, будут отображены в отчете.
  • Изменение слоев захвата контактов приведет к уничтожению всех контактов. Контакты, которые все еще действительны, будут отображаться как новые контакты через обратные вызова физики.
  • Поскольку это свойство уничтожает существующие контакты, менять его во время выполнения не рекомендуется, если вы отслеживаете состояние контактов через физические обратные вызовы.
  • Контакты являются взаимными, поэтому если либо Collider2D, участвующие в контакте, отключат захват контактов, то ни один из них не увидит контакт.
  • Если захват контактов отключен для слоя, то запросы на контакты не будут возвращать результаты для этого слоя, и не будут производиться обратные вызова.

Дополнительные ресурсы: ,LayerMask,.