Сцены, объекты, компоненты и префабы
После установки Unity 6 и первых шагов со скриптами на C# пора разобраться, из чего в Unity собирается игра. Почти любой проект строится вокруг четырёх базовых понятий:
Сцена хранит “картину мира” (уровень, меню, тестовая площадка).
GameObject — объект на сцене (игрок, камера, кнопка, препятствие).
Компоненты добавляют объекту свойства и поведение (Transform, Renderer, Collider, твой скрипт).
Префабы позволяют превращать настроенные объекты в переиспользуемые “шаблоны”.Понимание этой связки — фундамент для любой механики: движения, столкновений, UI, спавна врагов и сборки уровней.
!Схема связи сцены, объектов, компонентов и префабов
Сцена
Сцена — это файл, который описывает:
какие GameObject существуют в этом “уровне”
где они находятся (позиции/повороты/масштабы)
какие компоненты и настройки у них заданыТипичные примеры сцен:
MainMenu
Level01
GameOverОфициальная документация:
Unity Manual: ScenesКак создать и сохранить сцену
Создай новую сцену через меню File → New Scene.
Сразу сохрани её: File → Save или Save As.
Храни сцены в отдельной папке, например Assets/Scenes.Практическое правило: если сцена не сохранена, ты легко потеряешь изменения при перезапуске или сбое.
Что такое активная сцена
В редакторе обычно есть активная сцена — та, в которую будут добавляться новые объекты по умолчанию. При работе с несколькими сценами (например, отдельная сцена UI + сцена уровня) важно следить, куда именно ты создаёшь объекты.
GameObject
GameObject — это “пустой контейнер” на сцене. Сам по себе он почти ничего не умеет, но к нему можно добавлять компоненты.
Ключевые особенности GameObject:
может иметь дочерние объекты (иерархия)
может быть включён или выключен
всегда имеет компонент TransformОфициальная документация:
Unity Manual: GameObjectsHierarchy и родительство
Окно Hierarchy показывает список объектов сцены и их вложенность.
Зачем нужна вложенность:
можно “прикрепить” оружие к руке персонажа
можно сделать объект-органайзер, который группирует элементы уровня
трансформации наследуются: если родитель сдвинулся, дети тоже сдвинутсяВажный момент про Transform:
позиция/поворот/масштаб в Inspector показываются в локальных координатах относительно родителя
мировые значения можно смотреть через переключатель в Unity (зависит от режима отображения) и через кодКомпоненты
Компонент — это модуль, который добавляет GameObject свойства или поведение. В Unity ты “собираешь” объект из компонентов, как из конструктора.
Официальная документация:
Unity Manual: ComponentsTransform — главный компонент
Transform есть у любого GameObject и отвечает за:
Position — позиция
Rotation — поворот
Scale — масштабЭто та часть, с которой ты уже работал в скриптах через transform.position.
Типичные компоненты, которые встретятся почти сразу
| Компонент | Где используется | Что даёт |
|---|---|---|
| Camera | камера | картинка в окне Game |
| Light | свет | освещение в 3D |
| Mesh Renderer | 3D-объекты | отображение меша |
| Sprite Renderer | 2D-объекты | отображение спрайта |
| Collider/Collider2D | 3D/2D физика | столкновения и триггеры |
| Rigidbody/Rigidbody2D | 3D/2D физика | физическое движение |
| Audio Source | звук | проигрывание аудио |
| Твой скрипт (MonoBehaviour) | логика | управление поведением |
Добавление и удаление компонентов
Выбери объект в Hierarchy.
В Inspector нажми Add Component.
Найди компонент по имени и добавь.
Чтобы удалить компонент, открой меню компонента (обычно справа в заголовке) и выбери удаление.Практическое правило: если объект “не работает”, сначала проверь, есть ли у него нужные компоненты и включены ли они.
Включение/выключение объекта и компонента
Есть два разных уровня отключения:
выключить GameObject (галочка активности вверху Inspector) — выключится всё на объекте и его детях
выключить компонент (галочка в заголовке компонента) — объект остаётся активным, но конкретная “способность” отключаетсяЭто удобно для прототипирования и для логики игры (например, временно отключить управление персонажем).
Префабы
Префаб — это ассет-шаблон GameObject в окне Project, который можно много раз размещать на сцене как экземпляр.
Зачем нужны префабы:
переиспользование (враг, пуля, аптечка, дверь)
единые правки: меняешь шаблон — обновляются экземпляры
удобный спавн из кода (позже ты будешь создавать врагов через Instantiate)Официальная документация:
Unity Manual: PrefabsКак создать префаб
Создай и настрой GameObject на сцене (меш/спрайт, коллайдер, нужные параметры, твой скрипт).
Перетащи этот объект из Hierarchy в папку в Project, например Assets/Prefabs.
Unity создаст prefab asset.
Теперь можно удалять объект со сцены и добавлять экземпляры префаба перетаскиванием из Project в Scene.Экземпляр префаба и изменения
Когда префаб размещён на сцене, это Prefab Instance.
С ним есть два важных режима изменений:
изменения в экземпляре только для этого экземпляра (это называется override)
изменения в самом prefab asset применяются ко всем экземплярамПрактическое правило: если тебе нужен “такой же, но чуть другой” объект много раз, чаще всего лучше сделать новый префаб или вариант префаба, а не раздавать overrides по сцене.
Prefab Variant
Если нужен базовый враг и несколько его разновидностей (быстрый, бронированный, с другим цветом), используют Prefab Variant — префаб, который наследуется от другого префаба.
Официальная документация:
Unity Manual: Prefab VariantsРекомендуемая структура папок в Project
Строгих правил нет, но новичку полезно начать с понятной структуры:
Assets/Scenes
Assets/Scripts
Assets/Prefabs
Assets/Materials или Assets/Art
Assets/AudioПрактическое правило: чем раньше ты начнёшь аккуратно раскладывать ассеты, тем меньше хаоса будет через неделю.
Как это связано со скриптами из прошлой статьи
Скрипт на C# в Unity почти всегда:
является компонентом (наследуется от MonoBehaviour)
добавляется на GameObject
живёт в сцене как часть объекта
может быть частью префабаСамый типичный рабочий цикл выглядит так:
Создал сцену.
Добавил GameObject (игрок/враг/предмет).
Добавил компоненты (Renderer, Collider, Rigidbody).
Добавил скрипт, настроил поля через Inspector.
Превратил объект в префаб, чтобы переиспользовать и спавнить.Что дальше по курсу
Дальше ты начнёшь собирать небольшую сцену как мини-игру: взаимодействия через коллизии и триггеры, базовую логику победы/поражения и подготовку к сборке. Понимание сцен, объектов, компонентов и префабов сделает эти темы простыми и предсказуемыми.