Учебник Разработка игр на Unity для начинающих
Полный практический курс по Unity — самому популярному игровому движку для новичков и инди-разработчиков. Ты пройдёшь путь от пустой сцены до собранной игры: разберёшься в редакторе, поймёшь систему GameObject + компоненты, научишься писать скрипты на C# через MonoBehaviour, освоишь физику и коллизии, новый Input System, UI и звук, а в финале соберёшь билд под Windows, Web и Android.
Курс собран на актуальной Unity 6 (2023 LTS+) с новым Input System и URP. Игровая логика (движение, коллизии, здоровье, состояние врага) дублируется запускаемыми примерами на Python прямо в браузере — чтобы ты понимал суть, а не зубрил синтаксис.
Курс «Разработка игр на Unity» состоит из 6 разделов и 22 уроков: Знакомство с Unity и редактором, GameObject и компоненты, Скрипты на C# и MonoBehaviour, Физика и коллизии, Ввод, UI и звук и Собираем игру и сборка. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.
Программа курса
1 Знакомство с Unity и редактором
- Что такое игровой движок и зачем нужен Unity
Игровой движок как набор готовых систем: графика, физика, звук, ввод. Почему Unity — лучший старт для новичка в геймдеве.
- Установка Unity Hub и создание первого проекта
Unity Hub, выбор LTS-версии движка, шаблоны 2D/3D, URP. Как создать проект и не утонуть в настройках.
- Окна редактора: Scene, Game, Hierarchy, Inspector
Главные окна Unity: Scene View, Game View, Hierarchy, Project, Inspector, Console. Что где находится и зачем.
- Сцена, камера и первый объект на экране
Что такое сцена в Unity, роль камеры, мировые координаты, создание первого 2D-объекта (спрайта) и запуск игры.
- Что такое игровой движок и зачем нужен Unity
2 GameObject и компоненты
- GameObject как контейнер, компоненты как кубики
Композиция вместо наследования: GameObject — пустой контейнер, компоненты добавляют ему поведение. Архитектура Entity-Component.
- Transform: позиция, поворот, масштаб и иерархия
Компонент Transform: position, rotation, scale, локальные и мировые координаты, родитель-ребёнок, как наследуется трансформация.
- Префабы: переиспользуемые шаблоны объектов
Префаб (Prefab) как шаблон GameObject, инстансы, изменение префаба и распространение правок, вложенные префабы и варианты.
- Теги, слои и поиск объектов
Теги (Tag) для пометки объектов, слои (Layer) для физики и рендера, поиск объектов: FindWithTag, ссылки через Inspector.
- GameObject как контейнер, компоненты как кубики
3 Скрипты на C# и MonoBehaviour
- Первый скрипт: MonoBehaviour как компонент
Создание C#-скрипта, класс наследует MonoBehaviour, скрипт как компонент на объекте, Debug.Log, связь файла и класса.
- Жизненный цикл: Awake, Start, Update, FixedUpdate
Жизненный цикл MonoBehaviour: Awake, OnEnable, Start, Update, FixedUpdate, LateUpdate. Порядок вызовов и для чего каждый метод.
- Поля в Inspector и публичные переменные
public и SerializeField, настройка переменных через Inspector без перекомпиляции, [Header], [Range], ссылки на компоненты.
- Движение объекта через код и Time.deltaTime
Перемещение объекта через transform.Translate и position, зачем Time.deltaTime, нормализация направления, вектор движения.
- Первый скрипт: MonoBehaviour как компонент
4 Физика и коллизии
- Rigidbody2D: гравитация и движение по физике
Rigidbody2D, типы тел Dynamic/Kinematic/Static, gravityScale, velocity, AddForce, почему физику двигают в FixedUpdate.
- Коллайдеры и форма столкновений
Collider2D: BoxCollider2D, CircleCollider2D, PolygonCollider2D, форма столкновения, AABB, почему коллайдер не обязан совпадать со спрайтом.
- Столкновения и триггеры: OnCollision и OnTrigger
Разница между столкновением и триггером, IsTrigger, OnCollisionEnter2D, OnTriggerEnter2D, обработка событий, монеты и урон.
- Rigidbody2D: гравитация и движение по физике
5 Ввод, UI и звук
- Новый Input System: чтение управления
Новый Input System Unity 6 vs старый Input Manager, Input Actions, чтение клавиатуры и геймпада, привязки, абстракция ввода.
- UI: Canvas, текст, кнопки и счёт на экране
UI в Unity: Canvas, RectTransform, Text/TextMeshPro, Button, привязка счёта и здоровья, обновление интерфейса из скрипта.
- Звук: AudioSource, AudioClip и музыка
Звук в Unity: AudioSource и AudioClip, PlayOneShot для эффектов, фоновая музыка с loop, громкость, 2D vs 3D звук.
- Новый Input System: чтение управления
6 Собираем игру и сборка
- Поведение врага: конечный автомат (FSM)
Конечный автомат состояний для ИИ врага: Idle, Patrol, Chase, Attack, переходы по условиям, паттерн state machine в Unity.
- Здоровье, урон и инвентарь
Система здоровья и урона, ограничение HP, смерть и события, простой инвентарь предметов, добавление и использование, языко-независимая логика.
- Менеджеры, сцены и переходы между уровнями
GameManager и синглтон, хранение счёта и состояния игры, загрузка сцен SceneManager.LoadScene, переходы между уровнями, DontDestroyOnLoad.
- Сборка билда: Windows, WebGL и Android
Сборка игры в Unity: Build Settings, выбор платформы Windows/WebGL/Android, Player Settings, иконка и имя, оптимизация и публикация билда.
- Поведение врага: конечный автомат (FSM)