Unity для новичков — как сделать свою первую игру

Unity — движок, на котором сделаны Genshin Impact, Hollow Knight, Cuphead и Pokemon GO. Бесплатный, кроссплатформенный, с огромным комьюнити. Если вы хотите делать игры и не знаете, с чего начать — начните с него.

Это не курс. Это карта: что такое Unity, как его поставить, что внутри, как написать первый скрипт и довести дело до публикации. Без воды, без «в современном мире геймдева».

Что такое 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

Genshin Impact
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 — менеджер, через который вы управляете версиями движка, проектами и лицензиями.

  1. Идёте на unity.com/download, скачиваете Hub
  2. Устанавливаете, создаёте Unity ID (бесплатно)
  3. В Hub выбираете версию движка. Берите Unity 6.3 LTS — стабильная, с поддержкой до 2027
  4. При установке добавьте модули для нужных платформ (Windows/Mac по умолчанию, Android/iOS — по желанию)

Путь к проекту и папке установки — без кириллицы и пробелов. Серьёзно, это до сих пор вызывает баги. D:\Unity\Projects\MyGame — хорошо. D:\Мои игры\Новый проект — плохо.

Первый проект

  1. В Hub нажмите New Project
  2. Выберите шаблон: 2D (URP) для новичков — самый простой старт. 3D успеете потом
  3. Дайте проекту имя латиницей, выберите папку
  4. Нажмите Create — Unity создаст структуру файлов и откроет редактор

Интерфейс — что где

Первый запуск пугает. Куча панелей, кнопок, вкладок. Не пугайтесь. По факту вам нужны пять окон:

Hierarchy
Дерево всех объектов на сцене. Камера, свет, ваш персонаж — всё тут. Можно вкладывать объекты друг в друга (родитель-потомок).
Scene View
Рабочая область. Здесь вы расставляете объекты, двигаете их, вращаете камеру. Это ваш «холст».
Game View
Превью игры глазами игрока. Нажали Play — и видите результат прямо здесь.
Inspector
Свойства выбранного объекта. Позиция, размер, компоненты, скрипты — всё настраивается здесь.
Project + Console
Project — файловый менеджер (спрайты, скрипты, звуки). Console — логи, ошибки, Debug.Log(). Без консоли отладка невозможна.
Действие Клавиша / мышь
Вращение камеры ПКМ + движение мыши
Орбита вокруг объекта 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), между ними — переходы с условиями.

  1. Создайте Animator Controller (ПКМ в Project, Create, Animator Controller)
  2. Откройте окно Animator (Window, Animation, Animator)
  3. Добавьте состояния, настройте переходы
  4. Создайте параметры (Speed, IsJumping) — они управляют переходами
  5. Из кода меняйте параметры:
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-графики.

Оцените статью
Добавить комментарий