Unity - понимание коллизий
Коллизии в Unity отделены от самого Sprite, прикреплены как отдельные компоненты и рассчитываются сами по себе. Давайте теперь узнаем причину этого.
Everythingв вашей игре есть GameObject. Даже отдельные плитки, составляющие ваш уровень, сами по себе являются игровыми объектами.
Когда мы рассматриваем каждый компонент как GameObject, мы понимаем, что может быть thousandsобъектов GameObject в сцене, взаимодействуя друг с другом определенным образом. Вы можете себе представить, что если бы Unity добавляла коллизии к каждому GameObject, движку было бы непрактично вычислять коллизии для каждого из них.
Мы продолжим и добавим простую «стену», с которой персонаж игрока может столкнуться. Для этого создайте еще один спрайт и увеличьте его масштаб с помощью инструмента «Прямоугольник». Мы также придадим ему красный цвет черезColor в компоненте Sprite Renderer.
Теперь перейдите к Add Componentв Инспекторе и введите «Box Collider 2D». Щелкните первый отображаемый компонент, и должен появиться новый компонент.
Вы увидите ярко-зеленую линию по периметру вашего GameObject. Этоcollision boundary. Это то, что определяет актуальныйshape сталкивающихся объектов.
Повторите то же самое с нашим подвижным GameObject.
Конечно, коллизии в Unity не ограничиваются просто блоками. Они могут иметь самые разные формы и размеры и не обязательно являются копиями параметров объекта.
Они также могут принимать многоугольные формы.
Нередко можно увидеть, как разработчики и дизайнеры используют approximateформы в их границах столкновения, чтобы упростить их коллайдеры и избежать ненужных вычислений для движка. Скоро мы узнаем, как создавать разные формы и размеры с помощью наших коллайдеров.
Теперь, когда у нас есть границы столкновения, нажмите кнопку воспроизведения и посмотрите, как это работает.
Вы заметите, что наш подвижный объект ведет себя ненормально. Мы обсудим поведение объекта в нашей следующей главе.