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: что скачать
- Скачайте Unity Hub — менеджер версий (unity.com/download)
- В Unity Hub выберите версию Unity LTS (Long-Term Support) — стабильнее всего
- При установке выберите модули: Windows Build Support (или Mac), Visual Studio
- Зарегистрируйте бесплатный аккаунт на 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 — всё на практике.
Подробнее о курсе