Введение в столкновение
В Unity столкновение происходит, когда два GameObjects, настроенных для столкновения, занимают одно и то же физическое пространство. Коллизия является фундаментальной частью большинства игр, а также многих интерактивных приложений и симуляторов.
Для обработки столкновения между GameObjects, Unity использования коллайдеры. Коллайдер — это Unity компонент, который определяет форму GameObject Коллайдеры невидимы, и не нужно, чтобы они имели ту же форму, что и коллайдеры. GameObjectСетка.
Инструкции по добавлению компонентов в GameObject см. в Использование компонентов.
Каждый коллайдер 3D имеет эквивалент 2D. В Unity, 2D и 3D физика работает на разных системах моделирования физики. Для руководства по 2D физике коллайдеров, см. Collider 2D.
Типы Collider
Тип коллайдера определяется конфигурацией компонентов коллайдера GameObject Collider и Rigidbody. Эта конфигурация определяет поведение коллайдера и его взаимодействие с другими коллайдерами.
- Статические коллайдеры: GameObject имеет коллайдер, но нет Rigidbody.
- Rigidbody коллайдеры: GameObject имеет коллайдер и Rigidbody.
- Динамические коллайдеры: Rigidbody является динамичным (то есть, у него отключено Кинематическое).
- Кинематические коллайдеры: Rigidbody является кинематическим (т.е. имеет Кинематическое включено).
Существует также подтип коллайдера, называемый Триггерный коллайдер. Триггерные коллайдеры физически не сталкиваются с другими коллайдерами; вместо этого Unity вызывает функцию, когда другие коллайдеры проходят через них.
Триггерный коллайдер
Коллайдеры-триггеры не вызывают столкновений. Вместо этого они обнаруживают другие Коллайдеры, которые проходят через них, и вызывают функции, которые можно использовать для инициирования событий (см. Использование столкновений для инициирования других событий).
Чтобы превратить коллайдер в триггерный коллайдер, включите Это триггер свойства на Collider компонент. Триггерный коллайдер не сталкивается с другими коллайдерами, а другие коллайдеры проходят через него.
Чтобы триггерный коллайдер работал, хотя бы у одного участвующего в столкновении GameObject должен быть Rigidbody. Триггерным может быть коллайдер любого типа (статический или с Rigidbody), но в большинстве случаев триггерный коллайдер лучше сделать static collider. и добавить Rigidbody к GameObject, который проходит через триггер. Если несколько GameObjects проходят через один триггер, то должен быть Rigidbody по крайней мере на одном GameObject в каждой паре столкновений.
Триггеры могут иметь любую форму коллайдера (см. Collider формы), и они могут быть видимыми или невидимым. Чтобы сделать триггер невидимым, добавьте коллайдер в пустой GameObject. Добавьте триггер в видимый GameObject только в том случае, если другие GameObjects могут видимо пройти через него.
Для игры и симулирования триггеры могут нуждаться в некоторой настройке, чтобы сделать их интуитивными для игрока. Например, вы можете поэкспериментировать с созданием коллайдера триггеров немного больше, чем его соответствующий видимый GameObject, так что он имеет более широкий радиус.
Для информации о том, как различные типы коллайдеров взаимодействуют друг с другом при столкновении, см. Взаимодействие между типами коллайдеров.
Collider формы
Компоненты Collider доступны в различных конфигурациях форм. Существует три основных типа форм коллайдеров:
Примитивные коллайдеры — это встроенные простые формы, которые можно прикрепить к GameObject и масштабировать примерно до его размера и формы. Несколько примитивных форм коллайдеров также можно объединить, чтобы создать составные коллайдеры. Mesh Collider точно повторяет форму объекта GameObject, заданную его Сетка. Для сложных форм они точнее примитивных коллайдеров, но требуют больше вычислительных ресурсов. Wheel Collider — это основанные на raycast коллайдеры для игровых объектов с колёсами, поведение которых моделируется физикой (например, транспортных средств). Они содержат встроенную физику колёс и параметры управления трением.
Collider поверхности
Вы можете управлять трением и отскоком поверхности коллайдера. Когда два коллайдера встречаются, система физики использует свойства каждой поверхности для расчета трения и отскока между ними.
Для получения дополнительной информации см. Collider поверхности.