Перейти к содержимому
#АйДаКодить
#АйДаКодить
школа программирования
ИТ-лагерь с 25 октября
Дети создают игру в Unity

Как создать игру 2D в Unity пошагово для детей

Unity бесплатен для некоммерческого использования. Разбираем первые шаги: от запуска до движущегося персонажа — сначала в 3D, а затем и в плоском формате.

2D или 3D: что выбрать для первой игры

Среди известных игр Among Us и Cuphead сделаны как раз в плоской графике: персонажи и уровни у них плоские, хотя за счёт теней и анимации графика может выглядеть объёмно. Новичкам часто проще начать именно с плоской графики — меньше настроек камеры и физики, а логика движения нагляднее.

3D добавляет глубину и больше свободы для камеры, но требует больше времени на базовые вещи: например, на настройку столкновений в трёх измерениях вместо двух. В этом гиде — оба варианта: сначала 3D-персонаж на капсуле, затем тот же принцип на плоскости.

Настройка проекта под плоскую графику

Если создаёте новый проект специально для двумерной игры, в Unity Hub при создании выберите двумерный шаблон (Universal 2D или 2D Core, в зависимости от версии). Он сразу настраивает камеру в ортографическую проекцию — без перспективных искажений, привычных по 3D-играм — и подключает пакет 2D Sprite для работы с плоской графикой.

Если проект уже создан как 3D, переключить отдельный уровень на двумерную логику тоже можно: в настройках камеры меняют Projection с Perspective на Orthographic, а для объектов используют компоненты с припиской «2D» — Rigidbody2D, Collider2D, SpriteRenderer вместо MeshRenderer.

Установка Unity: что скачать

  1. Скачайте Unity Hub — менеджер версий (unity.com/download)
  2. В Unity Hub выберите версию Unity LTS (Long-Term Support) — стабильнее всего
  3. При установке выберите модули: Windows Build Support (или Mac), Visual Studio
  4. Зарегистрируйте бесплатный аккаунт на Unity.com — для Personal лицензии

Установка занимает 10–20 минут. Unity требует 10+ ГБ на диске и 8+ ГБ оперативной памяти для комфортной работы.

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

  • Scene view (центр) — 3D-редактор, где строится уровень. Навигация: правая кнопка + WASD
  • Game view — что видит камера во время игры. Play (▶) — запустить
  • Hierarchy (слева) — список всех объектов сцены: камера, свет, персонажи
  • Inspector (справа) — свойства выбранного объекта: позиция, поворот, компоненты
  • Project (снизу) — все файлы проекта: сцены, скрипты, текстуры, звуки

Первый скрипт C#: управление персонажем

Создайте 3D-объект (Capsule), добавьте компонент Rigidbody. Потом создайте скрипт PlayerMovement и напишите:

using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
    public float speed = 5f;
    public float jumpForce = 5f;
    private Rigidbody rb;
    private bool isGrounded;

    void Start()
    {
        rb = GetComponent<Rigidbody>();
    }

    void Update()
    {
        float x = Input.GetAxis("Horizontal");
        float z = Input.GetAxis("Vertical");
        Vector3 move = new Vector3(x, 0, z) * speed;
        rb.velocity = new Vector3(move.x, rb.velocity.y, move.z);

        if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
        {
            rb.AddForce(Vector3.up * jumpForce, ForceMode.Impulse);
            isGrounded = false;
        }
    }

    void OnCollisionEnter(Collision col)
    {
        if (col.gameObject.CompareTag("Ground"))
            isGrounded = true;
    }
}

Перетащите скрипт на Capsule в Hierarchy. Нажмите Play — персонаж двигается стрелками и прыгает по пробелу!

Первый двумерный скрипт: платформер на C#

Логика двумерного скрипта почти такая же, как в 3D-версии выше, — меняется в основном физика: вместо Rigidbody используется Rigidbody2D, а движение происходит по двум осям вместо трёх. Чтобы попробовать, создайте новый двумерный проект или переключите камеру в ортографический режим в уже открытом проекте.

using UnityEngine;

public class PlayerMovement2D : MonoBehaviour
{
    public float speed = 5f;
    public float jumpForce = 7f;
    private Rigidbody2D rb;
    private bool isGrounded;

    void Start()
    {
        rb = GetComponent<Rigidbody2D>();
    }

    void Update()
    {
        float x = Input.GetAxis("Horizontal");
        rb.velocity = new Vector2(x * speed, rb.velocity.y);

        if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
        {
            rb.AddForce(Vector2.up * jumpForce, ForceMode2D.Impulse);
            isGrounded = false;
        }
    }

    void OnCollisionEnter2D(Collision2D col)
    {
        if (col.gameObject.CompareTag("Ground"))
            isGrounded = true;
    }
}

Этот скрипт превращает любой спрайт в управляемого персонажа платформера: стрелки двигают его влево-вправо, пробел — прыжок. Разница с 3D-версией — всего в паре слов кода, а результат на экране получается совсем другим: плоский мир вместо объёмного. Именно с таких простых платформеров чаще всего начинают учиться в Unity.

Импорт спрайтов и Tilemap: level design в 2D

Для 2D-уровня вместо 3D-моделей используют спрайты — плоские картинки персонажей, фона и предметов. Unity импортирует PNG и JPG как спрайты автоматически, достаточно перетащить файл в папку Project. Для быстрой сборки уровня есть инструмент Tilemap: он превращает набор маленьких картинок-тайлов в кисть, которой можно «рисовать» землю, стены и платформы прямо на сцене — без ручной расстановки сотен отдельных объектов.

Такой подход стандартен почти для любой 2D-игры и сильно ускоряет прототипирование уровней.

С чего начать первую игру

Лучшие первые проекты для новичков в Unity — персонаж, уровень и первые сцены:

  • Шар-прокатчик (Roll-a-Ball) — официальный туториал Unity. Шар собирает кубики. Учит физику, триггеры, UI
  • Runner — персонаж бежит, нужно прыгать через препятствия. Автоматический бег + прыжок
  • Top-down shooter — вид сверху, персонаж стреляет. Учит Vector3, Instantiate, Destroy
  • 3D-платформер — уровень с платформами, врагами, финишем. Классика жанра

Если решили начать именно с 2D, вот проверенные направления для первого проекта:

  • 2D-платформер — герой прыгает по платформам, как в старых играх про водопроводчика
  • 2D-шутер сверху — вид сверху, стрельба по врагам
  • 2D-раннер — бесконечный бег вперёд, только прыжки и приседания
  • 2D-головоломка — сборка предметов и простая логика без физики прыжков
  • 2D-арканоид — платформа отбивает мяч, разрушая кирпичи

Что проще освоить ребёнку — 2D или 3D

Опыт показывает: детям, которые только начинают программировать, обычно проще даётся 2D — меньше абстракций с координатами, камерой и физикой, а результат на экране виден сразу и выглядит понятно. К 3D дети обычно переходят на второй-третий проект, когда уже уверенно ориентируются в интерфейсе Unity и коде на C#. Оба пути ведут к одному и тому же набору навыков — просто в 2D первые результаты появляются немного быстрее.

Частые ошибки новичков в Unity

Первые проекты почти у всех идут по похожему сценарию: что-то не запускается, персонаж проваливается сквозь пол или скрипт «молчит». Большинство таких проблем решается за пару минут, если знать, куда смотреть. Вот самые частые причины:

  • Скрипт не прикреплён к объекту: файл лежит в папке Project, но не перетащен на нужный объект в сцене
  • Имя файла не совпадает с названием класса внутри: в Unity они должны быть одинаковыми, иначе компонент не создастся
  • У пола нет коллайдера, а у персонажа — Rigidbody, поэтому он проваливается вниз
  • Забыли нажать Save или Ctrl+S: Unity запускает старую версию сцены
  • Значения в Inspector перебивают значения в коде: если переменная публичная, проверьте цифры в окне справа

Когда что-то не работает, откройте вкладку Console: Unity выводит туда сообщение об ошибке с номером строки. Это самый быстрый способ понять, что пошло не так, и научиться самостоятельно находить причину.

Как закрепить результат после первого проекта

Один готовый проект — хорошее начало, но настоящее понимание приходит на втором и третьем. Попробуйте изменить свой проект: добавьте врагов, счётчик очков, второй уровень или собственные звуки. Каждая такая доработка учит новому приёму и закрепляет то, что вы уже освоили. Хорошая привычка — сохранять каждую версию проекта отдельно, чтобы можно было вернуться к рабочему варианту, если эксперимент не удался.

Если хочется двигаться быстрее и системно, помогает курс с преподавателем: он подскажет, какой проект взять следующим, проверит код и объяснит ошибки, которые трудно найти самому.

Частые ошибки новичков в Unity

Несколько типичных проблем, с которыми сталкиваются в первую неделю:

  • Персонаж проваливается сквозь пол — на полу не добавлен Collider, поэтому физика не видит столкновение
  • Скрипт не запускается — забыли перетащить его на объект в Hierarchy, одного создания файла недостаточно
  • Значение не меняется в Inspector — не хватает public в объявлении переменной, поэтому она не подставилась в инспекторе
  • Игра тормозит уже на первом уровне — слишком много объектов с включённой физикой одновременно; помогает объединение статичных объектов или переход на Tilemap
  • Объект исчезает между сценами — компонент не сохраняется автоматически при смене сцены без специальной настройки

Все эти ошибки — часть нормального процесса обучения: даже опытные разработчики иногда тратят полчаса на пропущенную точку с запятой. Постепенно такие вещи начинают замечаться с первого взгляда на код, а поиск причины перестаёт занимать весь вечер.

Сколько времени уйдёт на первую игру

На настройку окружения и первый скрипт из этого гида обычно уходит один-два часа, включая установку Unity. Первый полноценный уровень с несколькими механиками — от нескольких дней до пары недель, в зависимости от того, сколько времени в день удаётся уделять проекту. Торопиться не нужно: на курсе дети проходят тот же путь размеренно, с разбором каждой ошибки.

Курс для детей

Unity — разработка двумерных и трёхмерных игр с нуля

Дети 12–16 лет создают на курсе полноценные игры в Unity — и 2D, и 3D: от первого спрайта или куба до опубликованного проекта. Язык C#, физика, анимации, UI — всё на практике.

Подробнее о курсе
Пробный урок — 500 ₽
500 ₽ · полный урок 60 минут
Формат
Ваш телефон
В каком классе учится ребёнок? Выберите класс — так подберём группу и формат первой встречи