Основы разработки игр на Unity

Мы уже рассказывали, как научиться разработке на Unity. В написанной совместно с онлайн-университетом GeekBrains статье мы рассмотрим пошаговое создание собственной игры с использованием 2D Game Kit.

2D Game Kit

Unity подходит не только для сложных трехмерных игр или работы с виртуальной и дополненной реальностью – движок прекрасно справляется и с 2D-классикой. Мы начнем с простого и разберемся в его игровой механике на примере 2D Game Kit – набора инструментов, шаблонов и настроек для быстрой разработки. По сути пакет представляет собой готовую игру-платформер, для которой можно создавать новые уровни, а также менять свойства существующих.

<span>2D Game Kit</span>2D Game Kit

Установка и создание проекта

<span>Unity Hub</span>Unity Hub

Для начала нужно скачать и установить Unity Hub – это лаунчер, который упрощает управление проектами и версиями Unity. Затем придется зарегистрироваться в экосистеме и создать Unity ID. Выберите лицензию Personal (персональную) и отметьте галочкой подходящий вариант применения: Unity позволяет использовать движок бесплатно для некоммерческих целей, а также компаниям с годовым доходом меньше $100 000.

Основы разработки игр на Unity

После активации лицензии можно установить последнюю LTS-версию Unity с необходимыми параметрами из раздела Installs . Выберите платформы, на которых должна запускаться игра, и дождитесь окончания инсталляции.

Основы разработки игр на Unity

N.B. На слабых машинах процесс может занять довольно длительное время – запаситесь печеньками и кофе.

Основы разработки игр на Unity

Когда Unity уже установлена, нужно создавать проект. Вы можете взять его из раздела Learn , выбрав там 2D Game Kit или добавив его в ваши Assets на сайте (не забудьте предварительно залогиниться под своим Unity ID).

Основы разработки игр на Unity Основы разработки игр на Unity

Создание новой сцены и карты уровня

2D Game Kit позволяет автоматически создать новую сцену по умолчанию. Она уже содержит персонажа Эллен, небольшую платформу, интерфейс здоровья, а также все нужное для передвижения и атаки. Для этого откройте проект и выберите раздел Kit Tools –> Create New Scene в верхнем меню.

Основы разработки игр на Unity Основы разработки игр на Unity

2D Game Kit использует функцию Tilemap в Unity, которая поможет быстро и легко нарисовать уровень. Все уже настроено, так что можно сразу приступить к работе. В верхнем меню выберите Window –> 2D –> Tile Palette , и у вас откроются две палитры плиток, которые позволяют рисовать уровни.

Основы разработки игр на Unity Основы разработки игр на Unity

Разработчику доступно два стиля спрайтов Grassy Rocks и Alien Structure . Выберите тот, который больше нравится, и начните рисовать карту. Визуальные инструменты похожи на обычный графический редактор, так что проблем с ними не возникнет. Блоки можно рисовать, редактировать или стирать.

Когда карта будет готова, можно сразу перейти в окно Game визуального редактора и нажать Play, чтобы посмотреть результат. Управление классическое: A , D , S , Space для прыжка. O , K – выбор оружия.

Двери и движущиеся платформы

Основы разработки игр на Unity

В меню проекта внизу нужно найти раздел Prefabs –> Interactables , где находится ряд игровых атрибутов. Возьмем для начала движущуюся платформу и перетащим ее в нашу сцену. После этого она автоматически появится в иерархии сцены в левом окне редактора. Если выбрать ее, то возле платформы в визуальном редакторе появится красная пунктирная линия, обозначающая путь ее движения.

Мы можем перетащить ее в любое место. Путь платформы можно сделать сложнее, заставив ее двигаться по кругу. Для этого нужно воспользоваться кнопкой Add Node в окне инспектора, который находится справа. Добавьте несколько точек-нод и соедините их, сменив флажок BACK_FORTH на LOOP в строке Looping инспектора панели. Стоит обратить внимание, что большая часть свойств всех игровых объектов меняется в инспекторе.

Основы разработки игр на Unity

Попробуем также добавить дверь: на ее примере мы разберемся, как настраивать взаимосвязь между сценариями разных объектов. Находим ее там же в разделе Prefabs –> Interactables и перетаскиваем в редактор.

Чтобы открыть дверь, добавим нажимную панель на полу: она обозначена как Pressure Pad . В инспекторе панели найдем раздел Pressure Pad (Script) , в одном из окон которого есть раздел On Pressed () . Добавим там новое действие при нажатии Runtime Only и в открывшееся поле перетащим из иерархии сцены нашу дверь, которая Door .

Основы разработки игр на Unity

Теперь в соседнем окне с надписью No Function выберем из выпадающего списка Animator –> Play (string) . Напишем в появившемся поле DoorOpening . Это готовый скрипт для из раздела Art –> Animations –> AnimationClips –> Interactables со сценариями для существующих объектов.

Основы разработки игр на Unity

Телепортация

Персонажа можно телепортировать из одной области сцены в другую или между разными уровнями. Добавим к уровеню два телепорта.

Основы разработки игр на Unity

В настройках телепорта мы видим раздел Transition Point (Script) , в котором в соответствующих окнах можно выбрать телепортируемый объект (в нашем случае Elen) и тип телепортации (Same Scene), перетащить из раздела иерархии точку назначения в Destination Transform (это будет второй телепорт), а также указать условие перемещения – при входе ( On Trigger Enter ) или при нажатии кнопки действия ( E Interact Pressed ). Также телепортироваться можно в другие сцены, например, для перехода между уровнями игры через настройку TransitionDestination , которая находится в Scene Control .

Враги

У нас есть два готовых врага в наборе: Chomper и Spitter. Их можно найти в окне проекта в Prefabs –> Enemies .

Основы разработки игр на Unity

Оба они контролируются компонентом Enemy Behavior в инспекторе. Вы можете использовать этот компонент для настройки таких свойств, как скорость врага, поле зрения (FOV), здоровье и многое другое. Добавив одного из них в сцену, можно поменять настройки обнаружения персонажа, дальность и угол зрения, скорость движения и реакции.

Основы разработки игр на Unity

Урон и украшения

За нанесения урона у нас отвечает функция Damager , ее можно прикрутить к любому игровому объекту и настроить на свое усмотрение. Добавим падающий ящик, который персонаж будет сбрасывать на врагов.

Основы разработки игр на Unity

Перетащив ящик на сцену, нажимаем в инспекторе Add Component и добавляем Damager . Первоначально он не будет совпадать с силуэтом ящика, поэтому его нужно вручную подогнать под размер объекта. Также зададим размер наносимого урона, а в разделе HittableLayers укажем врагов в качестве цели, чтобы случайно не повредить себя.

Основы разработки игр на Unity

Рекомендуем также создать пустой объект в самом низу сцены по всей ее длине и добавить в него Damager, чтобы реализовать механизм смерти игрока при падении. В противном случае Elen будет бесконечно падать вниз, что не особенно логично.

Сборка игры

Будем считать, что сцена уже готова и вы хотите протестировать ее вне редактора в виде отдельной игры. Чтобы не добавлять в проект созданные по умолчанию в 2D Game Kit сцены, стоит слегка изменить стартовые настройки. Их можно найти в разделе Scenes под названием Start . Откройте в редакторе объект TransitionStart , и выберете свою сцену в строке New Scene Name .

Основы разработки игр на Unity

Теперь при нажатии Start игрок сразу попадает в вашу сцену, минуя предустановленные уровни.

Основы разработки игр на Unity

Перейдем в меню работы с файлами к разделу Build Settings , где нужно выбрать необходимые сцены: Start, UIMenus, Loading и созданная вами. Ниже мы выбираем платформу, под которую будем собирать проект (при необходимости можно добавить поддержку требуемой архитектуры). Проверьте или измените настройки в разделе Player Settings и нажмите Build . Выберите папку назначения и дождитесь окончания сборки.

Игра готова, можно тестировать и делиться ею с друзьями.

Заключение

Мы лишь познакомили читателей с основами интерфейса Unity на примере комплекта 2D Game Kit. Более подробные руководства на английском языке легко найти в соответствующем разделе официального сайта Unity. Также рекомендуем ознакомится с инструкцией по созданию 2D пин-понга на Unity.

Надеемся, этот материал помог вам разобраться с интерфейсом движка и воодушевил на развитие в области геймдева. Если вы только начинаете изучать эту интересную индустрию, стоит обратить внимание на курс факультета разработки игр на Unity онлайн-университета Geekbrains. В нем уделяется большое внимание практике, а студенты в процессе обучения реализуют 2D- и 3D-игры разных жанров для ПК и смартфонов. С таким багажом можно идти на собеседование с потенциальным работодателем, тем более университет предлагает студентам бесплатные карьерные консультации и помогает подобрать соответствующие их навыкам вакансии.

Вы пропустили

AEGIS Algorithms Android Angular Apache Airflow Apache Druid Apache Flink Apache Spark API API Canvas AppSec Architecture Artificial Intelligence Astro Authentication Authorization AutoGPT AWS AWS Aurora AWS Boto3 AWS EC2 AWS Lambda Azure Babylon.js Backend bash Beautiful Soup Bento UI Big Data Binary Tree Browser API Bun Career Cassandra Charts ChatGPT Chrome Extension Clean Code CLI ClickHouse Coding Codux Combine Compose Computer Context Fusion Copilot Cosmo Route CProgramming cron Cryptography CSS CTF Cypress DALL-E Data Analysis Data science Database dbt dbt Cloud deno Design Design Patterns Detekt Development Distributed Systems Django Docker Docker Hub Drizzle DRY DuckDB Express FastAPI Flask Flutter For Beginners Front End Development Game Development GCN GCP Geospatial Git GitHub Actions GitHub Pages Gitlab GMS GoFr Golang Google Google Sheets Google Wire GPT-3 GPT3 Gradio Gradle Grafana Graphic Design GraphQL gRPC Guidance HMS Hotwire HTML Huawei HuggingFace IndexedDB InfoSec Interview iOS Jackknife Java JavaScript Jetpack Compose JSON Kafka Kotlin Kubernetes LangChain Laravel Linux LlaMA LLM localStorage Logging Machine Learning Magento Math Mermaid Micro Frontends Mobile Mobile App Development mondayDB MongoDB Mongoose MySQL Naming NestJS NET NetMock Networks NextJS NLP Node.js Nodejs NoSQL NPM OOP OpenAI OTP Pandas PDF PHP Playwright Plotly Polars PostgreSQL Prefect Productivity Programming Prometheus Puppeteer Pushover Python Pytorch Quarkus Rabbitmq RAG Ramda Raspberry Pi React React Native Reactor Redis REST API Revolut Riverpod RProgramming Ruby Ruby on Rails Rust Scalene SCDB ScyllaDB Selenium Servers Sklearn SLO SnowFlake Snowkase Software Architecture Software Development Solara Solid Spring Boot SQL SQLite Streamlit SudoLang Supabase Swift SwiftUI Tailwind CSS Taipy Terraform Testing Transformers TURN TypeScript Ubuntu UI Design Unix UX UX Design Vim Vite VSCode Vue Web Architecture Web Components Web Development Web Frameworks Web Scraping Web-разработка Webassembly Websocket Whisper Widgets WordPress YAML YouTube Zed Наука о данных Разное Тренды

Современный подход к разработке с использованием Next.js