Работа с физикой

С физикой, особенно с логикой движения, работаем в FixedUpdate

Слои коллизий

Юнити предоставляет возможность настраивать коллизию между объектами слоев при помощи матрицы коллизий. При помощи них можно снизить количество нежелательных коллизий.

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

Триггеры

Если нужно создать какую-то логику на триггерах, то делаем так: на единичных объектах (например игрок) или тех что меньше по кол-ву должен висеть коллайдер (isTrigger или нет, не важно) с rigidbody, а на множественных объектах должен висеть триггер со скриптом, который содержит логику триггера

Raycast

Некоторые советы по работе с рейкастами:

  • Используем минимально необходимое количество рейкастов.

  • Не увеличиваем длину луча больше чем необходимо, длина луча влияет на производительность

  • Не используем рэйкасты внутри апдейтов, без необходимости

  • Используй layerMask для ограничения того, с чем сталкивается луч. Если необходимо, чтобы луч пересекался со всеми слоями кроме тех, что мы задаем в layerMask - используем оператор ~ для битовой маски (~layerMask.value)

Last updated