Как сделать дорогу unity3d
Создаём простую 3D-гонку на Unity
Гонки — один из самых популярных и простых в реализации игровых жанров. Рассказываем, как за один день создать простую 3D-гонку на Unity.
В этой статье мы создадим простую гонку на Unity, в которой будут:
Мы уже несколько раз писали, как реализовать такие вещи, поэтому в этой статье сосредоточимся на том, как использовать Unity для создания самой гонки, не вдаваясь в подробности работы с интерфейсом движка.
Если вы раньше не работали с Unity, рекомендуем ознакомиться с этими статьями:
Финальную версию проекта со всеми ассетами можно найти в этом репозитории на GitHub.
Пишет о программировании, в свободное время создает игры. Мечтает открыть свою студию и выпускать ламповые RPG.
Подготовка к проекту
Для начала нужно создать 3D-проект в Unity и импортировать модели и звуки. Вы можете использовать свои или взять те, что находятся в репозитории.
Музыка и звуки найдены на бесплатных сайтах. Машины скачаны из Asset Store, а всё остальное я смоделировал самостоятельно (да, это всего лишь дорожный блок и монетка, но я старался).
Когда всё будет скачано и добавлено в проект, можно начинать.
Добавление дороги
Создайте пустой объект и назовите его Road — в нём будут размещаться все машины и дорожные блоки.
Добавьте в него первый блок:
Теперь для блока нужно подключить коллайдеры Box Collider. Но добавлять их нужно не на сам блок, а на дорожное полотно (Plane) и бордюры (Plane_002).
Для полотна сразу установите тег Road (его нужно создать, нажав на Add Tag). Затем приступайте к бордюрам. Это один объект, поэтому нужно просто добавить два коллайдера:
Для бордюров установите тег Wall (его тоже нужно создать). Теги пригодятся для того, чтобы определять, с чем именно сталкивается машина игрока.
После того как будет добавлен игрок, можно будет приступить к генерации бесконечной дороги.
Добавление игрока
Внутри объекта Road нужно создать ещё один пустой объект и назвать его Player. Внутри него добавьте пустой объект Model и камеру. В Model нужно поместить модель машины, а затем установить камеру сзади модели.
Для объекта Player добавьте компонент Rigidbody и два коллайдера:
Один из коллайдеров нужно установить как триггер — с его помощью будут проверяться столкновения с разными объектами.
Теперь нужно заставить машину двигаться. Для этого создадим скрипт Moving и прикрепим его к объекту Player.
В первую очередь добавим переменные:
Теперь в Unity нужно заполнить все публичные переменные. Пустыми пока можно оставить Control и Broken Prefab, потому что они ещё не готовы.
Переменная Rb будет добавляться скриптом в методе Start():
Внутри этого скрипта он использоваться не будет, но нужен, чтобы генерировать дорогу.
Вернёмся к движению:
Можно запустить сцену и проверить, как движется машина. Камеру перед этим лучше сместить вбок, чтобы видеть, вращаются ли колёса.
Теперь нужно написать скрипт, который позволит управлять машиной. Назовём его Controls и добавим несколько переменных: