Unity — движок, на котором сделаны Genshin Impact, Hollow Knight, Cuphead и Pokemon GO. Бесплатный, кроссплатформенный, с огромным комьюнити. Если вы хотите делать игры и не знаете, с чего начать — начните с него.
Это не курс. Это карта: что такое Unity, как его поставить, что внутри, как написать первый скрипт и довести дело до публикации. Без воды, без «в современном мире геймдева».
- Что такое Unity
- Игры, сделанные на Unity
- Почему Unity, а не Unreal
- Установка Unity
- Unity Hub
- Первый проект
- Интерфейс — что где
- Навигация по сцене
- Как устроена игра в Unity
- C# в Unity — основы
- Структура скрипта
- Скрипт управления персонажем
- Физика
- Анимация
- UI — пользовательский интерфейс
- Оптимизация
- Публикация
- Сборка проекта
- Где публиковать
- Что дальше
- Часто задаваемые вопросы
- Unity бесплатный?
- Нужно ли знать программирование, чтобы начать?
- Какую версию Unity ставить новичку?
- Можно ли сделать мобильную игру на Unity?
- Unity или Unreal Engine — что лучше для новичка?
Что такое Unity
Unity — игровой движок и среда разработки от Unity Technologies. Работает с 2D, 3D, AR и VR. Код пишется на C#. Компилирует проекты под Windows, macOS, Linux, Android, iOS, PlayStation, Xbox, Nintendo Switch, WebGL — список длинный.
Актуальная версия — Unity 6 (вышла осенью 2024). Это не Unity 2024, не Unity 7 — просто «шестёрка». Текущий стабильный LTS-релиз — Unity 6.3, поддержка до декабря 2027. Следующее обновление (6.4) ожидается в 2026.
Лицензия Personal — бесплатна, если ваш годовой доход от игры до $200 000. Runtime Fee (плата за установки) отменена в сентябре 2024. Заставку «Made with Unity» можно убрать начиная с Unity 6.
Игры, сделанные на Unity
Hollow Knight
Cuphead
Pokemon GO
Rust
Cities: Skylines
Hearthstone
Batman: Arkham Shadow
Escape from Tarkov
Почему Unity, а не Unreal
Вопрос, который задают все. Коротко:
| Unity | Unreal Engine | |
|---|---|---|
| Язык | C# | C++ / Blueprints |
| Порог входа | Низкий | Средний-высокий |
| 2D-игры | Отлично | Можно, но не его конёк |
| 3D / AAA-графика | Хорошо (URP/HDRP) | Лучше из коробки |
| Мобильные игры | Стандарт индустрии | Поддерживается |
| Бесплатность | До $200K дохода | До $1M дохода |
| Сообщество | Огромное, много русскоязычного | Большое |
Для первой игры, для мобильных проектов, для 2D — Unity. Для реалистичных 3D-миров и если не пугает C++ — Unreal. Для новичка выбор почти всегда Unity: C# проще, документация обширнее, туториалов больше.
Установка Unity
Unity Hub
Не качайте движок напрямую. Сначала ставится Unity Hub — менеджер, через который вы управляете версиями движка, проектами и лицензиями.
- Идёте на unity.com/download, скачиваете Hub
- Устанавливаете, создаёте Unity ID (бесплатно)
- В Hub выбираете версию движка. Берите Unity 6.3 LTS — стабильная, с поддержкой до 2027
- При установке добавьте модули для нужных платформ (Windows/Mac по умолчанию, Android/iOS — по желанию)
Путь к проекту и папке установки — без кириллицы и пробелов. Серьёзно, это до сих пор вызывает баги.
D:\Unity\Projects\MyGame— хорошо.D:\Мои игры\Новый проект— плохо.
Первый проект
- В Hub нажмите New Project
- Выберите шаблон: 2D (URP) для новичков — самый простой старт. 3D успеете потом
- Дайте проекту имя латиницей, выберите папку
- Нажмите Create — Unity создаст структуру файлов и откроет редактор
Интерфейс — что где
Первый запуск пугает. Куча панелей, кнопок, вкладок. Не пугайтесь. По факту вам нужны пять окон:
Навигация по сцене
| Действие | Клавиша / мышь |
|---|---|
| Вращение камеры | ПКМ + движение мыши |
| Орбита вокруг объекта | Alt + ЛКМ |
| Приближение | Колёсико мыши |
| Перемещение объекта | W (Move Tool) |
| Вращение объекта | E (Rotate Tool) |
| Масштабирование | R (Scale Tool) |
| Фокус на объекте | Выбрать объект, нажать F |
Как устроена игра в Unity
Всё в Unity — это GameObject. Персонаж — GameObject. Камера — GameObject. Пустой маркер на сцене — тоже GameObject. Сам по себе он ничего не делает. Поведение добавляется через компоненты.
- Transform — позиция, поворот, масштаб. Есть у каждого объекта, удалить нельзя
- SpriteRenderer — отображает картинку (для 2D)
- Rigidbody2D — физика: гравитация, масса, скорость
- Collider2D — форма столкновений (BoxCollider2D, CircleCollider2D)
- Animator — управляет анимациями
- AudioSource — воспроизведение звуков
- Ваш скрипт — кастомная логика на C#
Это и есть компонентная архитектура. Вместо огромных классов-наследников вы собираете объект из кирпичиков. Надо физику — добавили Rigidbody. Надо звук — добавили AudioSource. Простая и мощная идея.
C# в Unity — основы
Без кода далеко не уедешь. Визуальный скриптинг в Unity есть, но он ограничен, и на работу с ним не возьмут. C# — обязательный минимум.
Структура скрипта
using UnityEngine;
public class MyScript : MonoBehaviour
{
void Start()
{
// Вызывается один раз при старте
Debug.Log("Привет, Unity!");
}
void Update()
{
// Вызывается каждый кадр
}
}
Все скрипты наследуются от MonoBehaviour. Это даёт доступ к методам жизненного цикла:
| Метод | Когда вызывается | Для чего |
|---|---|---|
Awake() |
При загрузке скрипта | Инициализация до Start |
Start() |
Перед первым кадром | Настройка, получение компонентов |
Update() |
Каждый кадр | Ввод игрока, логика |
FixedUpdate() |
Фиксированный интервал | Физика (Rigidbody) |
OnCollisionEnter2D() |
При столкновении | Урон, отскок |
OnTriggerEnter2D() |
При входе в триггер | Сбор предметов, зоны |
Скрипт управления персонажем
using UnityEngine;
public class PlayerController : MonoBehaviour
{
[SerializeField] private float speed = 5f;
[SerializeField] private float jumpForce = 7f;
private Rigidbody2D rb;
private bool isGrounded;
void Start()
{
rb = GetComponent<Rigidbody2D>();
}
void Update()
{
float moveInput = Input.GetAxisRaw("Horizontal");
rb.velocity = new Vector2(moveInput * speed, rb.velocity.y);
if (Input.GetButtonDown("Jump") && isGrounded)
{
rb.AddForce(Vector2.up * jumpForce, ForceMode2D.Impulse);
}
}
void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.CompareTag("Ground"))
isGrounded = true;
}
void OnCollisionExit2D(Collision2D collision)
{
if (collision.gameObject.CompareTag("Ground"))
isGrounded = false;
}
}
Создали скрипт — перетащили на объект в Inspector. Всё, он работает. Поля с [SerializeField] видны в инспекторе, можно менять значения без перекомпиляции.
Физика
Unity использует физический движок Box2D (для 2D) и NVIDIA PhysX (для 3D). Вы не пишете гравитацию руками — вешаете Rigidbody и настраиваете параметры.
- Mass — масса. Влияет на взаимодействие объектов при столкновениях
- Gravity Scale — множитель гравитации. 0 — объект не падает, 2 — падает вдвое быстрее
- Drag — сопротивление воздуха. Замедляет движение
- Is Kinematic — отключает физику, объект двигается только через код
Физику (Rigidbody) обрабатывайте в
FixedUpdate(), а не вUpdate(). Update привязан к частоте кадров (может быть 30 или 300 FPS), FixedUpdate работает с фиксированным шагом — физика будет одинаковой на любом железе.
Анимация
Система анимации в Unity — это Animator Controller. Работает как конечный автомат: есть состояния (Idle, Run, Jump), между ними — переходы с условиями.
- Создайте Animator Controller (ПКМ в Project, Create, Animator Controller)
- Откройте окно Animator (Window, Animation, Animator)
- Добавьте состояния, настройте переходы
- Создайте параметры (Speed, IsJumping) — они управляют переходами
- Из кода меняйте параметры:
private Animator animator;
void Start()
{
animator = GetComponent<Animator>();
}
void Update()
{
float speed = Mathf.Abs(Input.GetAxis("Horizontal"));
animator.SetFloat("Speed", speed);
if (Input.GetButtonDown("Jump"))
animator.SetTrigger("Jump");
}
Анимации можно делать прямо в Unity (покадрово двигая спрайты) или импортировать из Aseprite, Spine, Blender.
UI — пользовательский интерфейс
Для интерфейса в Unity есть два пути: старый UI (Canvas + GameObject’ы) и новый UI Toolkit. Для новичков — Canvas, он проще и документации больше.
- Canvas — контейнер для всех UI-элементов. Создаётся автоматически при добавлении первого UI-объекта
- Text / TextMeshPro — текст. TMP выглядит лучше и рекомендуется вместо обычного Text
- Button — кнопка с событием OnClick
- Image — картинка (иконки, фоны, полоски здоровья)
- Slider — ползунок (громкость, прогресс)
Привязка к экрану — через Anchors (якоря). Если не настроить якоря, UI поедет на другом разрешении. Кнопку «Пауза» привяжите к правому верхнему углу, счётчик жизней — к левому. Это важно для мобильных экранов.
Оптимизация
Новички обычно забивают на оптимизацию. А потом простая 2D-игра тормозит на телефоне. Несколько правил, которые стоит знать сразу:
- Не пишите тяжёлую логику в Update(). Этот метод вызывается 60+ раз в секунду. Find(), GetComponent(), создание объектов — всё это дорого
- Кэшируйте компоненты. Получили
GetComponent<Rigidbody2D>()в Start() один раз — и используйте переменную - Object Pooling. Не создавайте и не уничтожайте объекты (пули, эффекты) постоянно. Используйте пул — набор заранее созданных объектов, которые включаются и выключаются
- Атласы спрайтов. Много отдельных текстур — много draw calls. Sprite Atlas объединяет картинки в одну текстуру
- Profiler. Window, Analysis, Profiler. Показывает, что именно тормозит. Без профайлера оптимизация — гадание на кофейной гуще
Классическая ошибка новичка:
GameObject.Find("Player")вUpdate(). Это поиск объекта по имени каждый кадр. На большой сцене — заметные просадки FPS.
Публикация
Сборка проекта
File, Build Settings. Выбираете платформу, нажимаете Build. Для ПК получится .exe, для Android — .apk / .aab, для WebGL — набор файлов для хостинга в браузере.
Перед сборкой проверьте:
- Player Settings: название, иконка, разрешение, ориентация экрана
- Scenes in Build: все нужные сцены добавлены и в правильном порядке
- Для Android: минимальная версия SDK, подпись APK
Где публиковать
| Платформа | Для чего | Стоимость входа |
|---|---|---|
| itch.io | Инди-игры, демо, прототипы | Бесплатно |
| Steam | ПК-игры | $100 за проект |
| Google Play | Android | $25 единоразово |
| App Store | iOS | $99/год |
| RuStore | Android (РФ) | Бесплатно |
Первый проект лучше выложить на itch.io или собрать WebGL-версию и залить на свой сайт. Для Steam нужна более-менее готовая игра и $100.
Что дальше
Вы установили Unity, поняли, что такое GameObject и компоненты, написали первый скрипт. Это правда только начало. Дальше — по ситуации:
- Хотите 2D-платформер — изучите Tilemap (рисование уровней плитками), Cinemachine (камера, следящая за игроком), SceneManager (переключение уровней)
- Хотите 3D — разберитесь с URP/HDRP (рендер-пайплайны), навигацией (NavMesh), Terrain
- Хотите мультиплеер — Netcode for GameObjects (официальное решение Unity для сетевых игр)
- Хотите зарабатывать — Unity Ads, In-App Purchases. Но сначала сделайте игру, которую хочется проходить
Главный совет, который все дают и который все игнорируют: доделайте первый проект до конца. Не бросайте на полпути ради «более интересной идеи». Маленькая законченная игра лучше десяти прототипов в папке.
Часто задаваемые вопросы
Unity бесплатный?
Да. Лицензия Unity Personal бесплатна, если ваш годовой доход от игры не превышает $200 000. Runtime Fee (плата за установки) отменена. Начиная с Unity 6 можно убрать заставку «Made with Unity».
Нужно ли знать программирование, чтобы начать?
Для первых экспериментов — нет, можно использовать визуальный скриптинг. Но для серьёзной разработки и трудоустройства знание C# обязательно. Начните с базового синтаксиса: переменные, условия, циклы, методы.
Какую версию Unity ставить новичку?
Unity 6.3 LTS — последняя стабильная версия с поддержкой до декабря 2027 года. Не ставьте «tech stream» обновления (6.1, 6.2) — они менее стабильны и предназначены для тех, кому нужны самые свежие функции.
Можно ли сделать мобильную игру на Unity?
Да, Unity — стандарт индустрии для мобильных игр. При установке добавьте модули Android Build Support и/или iOS Build Support. Для публикации на Google Play нужен аккаунт разработчика ($25), на App Store — $99/год.
Unity или Unreal Engine — что лучше для новичка?
Для новичков чаще рекомендуют Unity: C# проще, чем C++, порог входа ниже, туториалов и русскоязычных ресурсов больше. Unreal лучше подходит для реалистичных 3D-проектов и AAA-графики.