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

> Создаём первую игру 2D в Unity с нуля: установка, интерфейс, скрипт на C#, физика. Пошаговый гид для детей и подростков от 12 лет.

Source: https://codims.ru/stati/kak-sozdat-igru-v-unity-poshagovo/

---

## 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 — всё на практике.

[Подробнее о курсе](/courses/unity/)
