Учебники

Единство — понимание столкновений

Столкновения в Unity отделены от самого Sprite, прикреплены как отдельные компоненты и рассчитываются самостоятельно. Давайте теперь узнаем причину этого.

Все в вашей игре — GameObject. Даже отдельные плитки, которые составляют ваш уровень, сами по себе являются объектами GameObject.

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

Мы продолжим и добавим простую «стену», с которой может столкнуться наш персонаж. Для этого создайте еще один спрайт и увеличьте его, используя инструмент Rect. Мы также дадим ему красный цвет через свойство Color в компоненте Sprite Renderer.

Свойство цвета

Теперь перейдите к Add Component в Инспекторе и введите «Box Collider 2D». Нажмите на первый компонент, который появляется, и должен появиться новый компонент.

Добавить компонент

Вы увидите ярко-зеленую линию по периметру вашего GameObject. Это граница столкновения . Это то, что определяет фактическую форму встречных объектов.

Повторите то же самое с нашим подвижным GameObject.

Конечно, коллизии в Unity не ограничиваются просто боксами. Они могут иметь различные формы и размеры и не обязательно являются точными копиями параметров объекта.

Коробка в форме

Они также могут принимать многоугольные формы.

многоугольники

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

Теперь, когда у нас есть границы столкновений, нажмите play и посмотрите на них в действии.

Приблизительные формы

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