Unity: Полный конспект для начинающих
Ключевые тезисы
- Unity — мощный и популярный кроссплатформенный игровой движок, идеальный для начала пути в геймдеве благодаря простоте, мощности и доступности для одиночных разработчиков.
- Основное внимание уделяется механике и функционалу движка, а не программированию. Следующий шаг — изучение языка C# для создания игровой логики.
- Движок предоставляет огромные возможности для создания как 2D, так и 3D-игр: современную графику, физику, анимацию, UI и многое другое.
Возможности и преимущества Unity
- Простота разработки: Создание игр через перетаскивание объектов, минимальный порог входа благодаря визуальному редактору.
- Кроссплатформенность: Написав код один раз, можно выпустить игру под множество платформ (Windows, macOS, Linux, Android, iOS, консоли).
- Богатый функционал: Поддержка современной графики, физики, анимации, аудио, пользовательского интерфейса (UI), кат-сцен.
- Примеры успешных проектов: Firewatch, The Forest, Rick and Morty: Virtual Rick-ality, Kerbal Space Program.
Установка и настройка Unity
Установка движка
- Регистрация: Рекомендуется создать аккаунт на официальном сайте Unity.
- Выбор версии: Для личного использования и обучения подходит бесплатная версия Unity Personal.
Лицензию потребуется купить, если годовой доход от игр превысит $100 000.
- Установка через Unity Hub:
- Скачивается и устанавливается Unity Hub — менеджер для управления версиями движка и проектами.
- В разделе Installs добавляется нужная версия Unity (рекомендуется стабильный релиз, а не альфа/бета).
- При установке выбираются необходимые модули (например, для разработки под Android или iOS).
🛠 Первый проект
- Создание проекта: В Unity Hub на вкладке Projects нажать New.
- Выбор шаблона: Можно выбрать 2D или 3D. Важно: внутри проекта можно легко переключаться между 2D и 3D режимами.
- Сохранение: Проект сохраняется как сцена (
.unityфайл). Несколько сцен = несколько уровней в игре.
Интерфейс Unity: Основные вкладки
🗂 Иерархия (Hierarchy)
- Отображает все игровые объекты (GameObjects), находящиеся на текущей сцене (уровне).
- С объектами можно взаимодействовать: переименовывать, удалять, копировать, дублировать.
Проект (Project)
- Показывает все файлы проекта: скрипты, текстуры, аудио, материалы, префабы.
- Объекты из этой папки можно перетаскивать на сцену.
Сцена (Scene) и Игра (Game)
- Сцена: Редактор уровня. Здесь расставляются и редактируются объекты.
- Инструменты: Перемещение (W), Вращение (E), Масштабирование (R), Универсальный Rect Tool (T).
- Навигация: Приближение колёсиком мыши, центрирование на объекте по клавише F, вращение вида с зажатым Alt.
- Игра (Game): Показывает вид из основной камеры — то, что увидит игрок.
Инспектор (Inspector)
- Отображает свойства и компоненты выбранного объекта.
- Ключевой компонент Transform: контролирует позицию (Position), вращение (Rotation) и масштаб (Scale) объекта.
- Компоненты добавляют объекту функциональность (физику, рендеринг, скрипты и т.д.).
Консоль (Console)
- Вывод системных сообщений, логов, предупреждений и ошибок из кода.
Работа с 3D-объектами и физикой
Примитивные 3D-объекты
Unity предоставляет набор стандартных объектов:
- Cube (Куб), Sphere (Сфера), Capsule (Капсула), Cylinder (Цилиндр).
- Plane / Quad (Плоскость) — для создания поверхностей.
- 3D Text (Трёхмерный текст).
- Terrain (Ландшафт) — для создания сложного рельефа.
Каждый объект по умолчанию содержит:
- Mesh Filter (форма объекта).
- Mesh Renderer (отрисовка объекта, материалы).
- Collider (коллайдер) — определяет твёрдые границы объекта для физики.
Добавление физики (Rigidbody)
- Компонент Rigidbody делает объект подверженным физическим законам.
- Use Gravity: Включение/отключение гравитации.
- Mass: Масса объекта (влияет на силу столкновений).
- Drag: Сопротивление воздуха (замедляет падение).
- Is Kinematic: Делает объект статичным (не подверженным физике, но управляемым скриптами).
Работа с камерой (Camera)
Основные настройки компонента Camera:
- Background: Задний фон. Можно установить Skybox (небо), Solid Color (однотонный) или None.
- Projection:
- Perspective (Перспектива) — для 3D-игр, объекты уменьшаются с расстоянием.
- Orthographic (Ортографическая) — для 2D-игр, размер объектов не зависит от расстояния.
- Field of View: Угол обзора камеры.
- Clipping Planes:
- Near — минимальное расстояние видимости.
- Far — максимальное расстояние видимости.
Работа со светом (Light)
Типы источников света:
- Directional Light (Направленный свет) — аналог солнца, освещает всю сцену равномерно. Важно только его вращение.
- Point Light (Точечный свет) — как лампочка, свет расходится сферой.
- Spotlight (Прожектор) — направленный луч света конусом.
Настройки компонента Light:
- Type: Выбор типа источника.
- Color: Цвет света.
- Intensity: Интенсивность (яркость).
- Shadows: Настройки теней (Hard Shadows — производительнее, Soft Shadows — реалистичнее).
🖥 Создание пользовательского интерфейса (UI)
🖼 Основные объекты UI
При создании любого UI-элемента автоматически добавляются:
- Canvas (Холст) — контейнер для всех UI-элементов.
- Для корректного отображения привяжите Canvas к камере (Render Mode > Screen Space - Camera).
- Для адаптивности установите Canvas Scaler > UI Scale Mode > Scale With Screen Size.
- Event System — система обработки событий (нажатия, скролл и т.д.). Не удалять!
Элементы UI
- Text (Текст): Добавление текстовых надписей. Можно менять шрифт, размер, цвет, выравнивание. Поддерживает простые HTML-теги.
- Image (Изображение): Отображение картинок (спрайтов). Для загрузки изображения его Texture Type в настройках импорта нужно изменить на Sprite (2D and UI).
- Button (Кнопка): Состоит из объекта Image (внешний вид) и компонента Button (логика).
- В компоненте Button настраиваются цвета для разных состояний (Normal, Highlighted, Pressed).
- Можно добавить обработчик события (On Click()), чтобы привязать действие (например, скрыть/показать объект) без написания кода.
Другие UI-элементы
Unity предоставляет богатый набор UI-элементов для создания интерфейсов:
- Dropdown (Выпадающий список). Можно добавлять/редактировать опции и иконки.
- Panel (Панель) — контейнер для группировки других элементов. Используется как контейнер или элемент декора.
- Input Field (Поле ввода) — для ввода текста. Состоит из самого поля, Placeholder (текст-подсказка) и Text (введенный текст).
- Toggle (Переключатель) — галочка.
- Slider (Ползунок) и Scrollbar — элементы для прокрутки и выбора значений.
Основы 2D-разработки
2D и 3D проекты в Unity имеют ключевые различия. При создании 2D-проекта автоматически настраивается:
- Ортографическая камера (объекты не искажаются с расстоянием).
- Отсутствует Directional Light (не влияет на спрайты).
- Skybox заменен на Solid Color.
Работа со спрайтами:
- Спрайты (изображения) перетаскиваются в проект. В 2D-шаблоне их Type автоматически ставится как
Sprite. - Sprite Renderer — компонент для отображения. Позволяет зеркалить картинку (
Flip X/Y). - Спрайтшит (Sprite Sheet) — это набор изображений для создания анимации путем быстрого переключения между ними. Чтобы его использовать:
- В настройках изображения выбрать
Sprite Mode: Multiple. - Открыть Sprite Editor →
Slice→Automatic→Apply.
- В настройках изображения выбрать
- Чтобы создать анимацию, нужно перетащить набор кадров на сцену. Unity автоматически создаст Animation и Animator. Важно проверить галочку
Loop Time.
2D-физика:
- Для коллизий используются компоненты с приставкой 2D (например,
Box Collider 2D). - Физика добавляется через
Rigidbody 2D. - Можно создавать Physics Material 2D для настройки трения (
Friction) и упругости (Bounciness).
Префабы (Prefabs) и Asset Store
Префабы (Prefabs)
- Префаб — это шаблон объекта, вынесенный в папку проекта (объект становится синим).
- Преимущества:
- Быстрое создание копий на разных сценах.
- Централизованное редактирование: изменения в префабе применяются ко всем его экземплярам (можно принудительно
Apply AllилиRevert All).
- Создание: перетащите готовый объект из иерархии в папку проекта.
Asset Store
- Официальный магазин ресурсов для Unity (assetstore.unity.com).
- Содержит платные и бесплатные ассеты (3D-модели, текстуры, звуки, готовые скрипты и системы), что значительно ускоряет разработку.
- Как использовать:
- Найдите ассет в браузере, нажмите
Add to My Assets. - В Unity откройте Package Manager (
Window→Package Manager). - Выберите "My Assets", скачайте и импортируйте нужный пакет.
- Найдите ассет в браузере, нажмите
Готовые контроллеры персонажей
Для быстрого прототипирования можно использовать готовые контроллеры из Asset Store (например, First Person Controller).
- Включают в себя все базовые механики: передвижение, прыжок, вращение камеры.
- Добавляются в проект как префаб. Интегрированная камера может заменить основную.
Создание 3D-ландшафта (Terrain)
Инструмент Terrain — мощный и гибкий инструмент для создания ландшафта (горы, долины).
- Raise/Lower Terrain — поднять/опустить terrain (для создания гор и впадин).
- Paint Holes — создавать отверстия (например, для пещер).
- Smooth Height — сглаживать резкие перепады.
- Paint Texture — наносить текстуры (земля, трава, камень). Предварительно текстуры нужно добавить в палитру terrain.
- Paint Trees — расставлять деревья. Можно добавить несколько моделей, настроить плотность, случайную высоту и цвет.
- В настройках (
Terrain Settings) можно задать общий материал и размер карты.
Настройка атмосферы и освещения
Атмосферу игры сильно влияют настройки освещения, тумана и Skybox.
- Окно
Lighting(Window→Rendering→Lighting):- Environment — настройка Skybox (можно использовать готовые материалы из Asset Store) и Fog (туман). Туман сильно влияет на атмосферу.
- Изменение цвета и интенсивности окружающего света (
Environment Lighting) кардинально меняет настроение сцены.
Сборка проекта (Build Settings)
Перед компиляцией игры необходимо:
- Открыть
File→Build Settings. - Перетащить в список сцены в нужном порядке (первая — стартовая).
- Выбрать целевую платформу (ПК, Android, iOS) и нажать
Switch Platform. - Настроить параметры в
Player Settings:- Название компании, продукта, версия.
- Иконки приложения.
- Ориентация экрана (для мобильных).
- Для Android: требуется создать Keystore для подписи приложения.
- Нажать
Buildи выбрать папку для сохранения исполняемого файла.
Демонстрация готового проекта и дальнейший путь
В финальном проекте реализован базовый функционал 3D-игрока (передвижение, прыжок, управление камерой), что показывает, как объединяются знания по движку и программированию на C#.
Текущий этап: Вы освоили интерфейс и базовые инструменты Unity (работа с объектами, материалами, создание простых 2D и 3D-сцен).
Следующие шаги:
- Изучение C# для Unity — это фундамент для создания игровой логики. Без этого невозможно редактировать или писать скрипты.
- Создание полноценного игрового проекта — чтобы закрепить знания.
Где учиться?
- На сайте itproger.com доступны бесплатные курсы по языку C# и созданию игры на Unity с нуля.
- Для глубокого погружения существует большая программа обучения, которая покрывает разработку 2D/3D-игр, работу с анимацией, звуком, материалами, пост-обработкой, монетизацией и даже создание проектов с дополненной реальностью (AR).
Итоговые выводы
- Unity — идеальный движок для начала пути в геймдеве благодаря своей простоте, мощности и кроссплатформенности.
- Интерфейс может показаться сложным, но его основы быстро осваиваются. Движок позволяет создавать прототипы и полноценные игры, начиная с примитивных объектов и заканчивая сложным UI и ландшафтами.
- Использование префабов и Asset Store значительно ускоряет процесс разработки.
- База работы с движком заложена. Теперь важно не останавливаться и перейти к изучению программирования на C#, чтобы