Представляем новые рабочие процессы Prefab

Одним из самых запрашиваемых дополнений к Unity является возможность вложения Prefabs. Но мы знаем, что многим из вас нужно гораздо больше изменений в рабочих процессах Prefab, чем это. Поэтому мы улучшаем всю систему, сосредоточив внимание на повторном использовании, контроле и безопасности. Это первая часть серии блогов, объясняющих предстоящие изменения. Если вы еще этого не сделали во время вчерашнего Unite Berlin keynote, получите предварительную сборку Unity с новой системой Prefab здесь.
Давайте начнем с краткого обзора основ того, что такое Prefabs в Unity. Фундаментально, актив Prefab похож на шаблон GameObject и его дочерних объектов. Вы можете использовать экземпляры актива Prefab для создания множества копий GameObject в ваших сценах. Если актив Prefab изменяется, все экземпляры Prefab автоматически обновляются соответственно.
Мы поговорили с широким кругом независимых и AAA-студий, чтобы глубже понять, как вы все работаете с Prefabs в данный момент. Проблема, которую мы обнаружили, заключалась в том, что когда вы хотели отредактировать актив Prefab, вам нужно было перетащить его в открытую сцену в иерархии, чтобы изменить его, применить изменения и затем не забыть удалить его снова. Еще одной большой проблемой была кнопка Применить для экземпляров Prefab в инспекторе. С помощью этой кнопки вы могли случайно применить изменения к активу Prefab, для которого у вас не было хорошего способа получить обзор.
Чтобы решить эти проблемы, мы представили ряд новых функций. Мы реализовали обратную совместимую подсистему Prefab, которая теперь поддерживает вложение и наследование. Мы улучшили визуализацию свойств и объектов для экземпляров Prefab и добавили возможность применять переопределения на нескольких уровнях детализации: по свойству, по компоненту/GameObject или, как и прежде, ко всему экземпляру Prefab. Наконец, мы добавили режим Prefab, чтобы иметь возможность редактировать актив Prefab в изоляции.
Режим Префаба представляет собой фундаментальное изменение в работе с Префабами. Он позволяет вам решать, хотите ли вы вносить изменения в экземпляр Префаба или вносить изменения непосредственно в актив Префаба.
Режим Префаба дает вам более контролируемую сессию редактирования актива Префаба, потому что вы можете выполнять все изменения в активе Префаба, включая структурные изменения, без получения диалогов, спрашивающих вас о разрыве связи с Префабом. С режимом Префаба вам больше не нужно вносить временные изменения в экземпляр Префаба с единственной целью применения этих изменений к активу позже (с возможным побочным эффектом применения других предыдущих переопределений, которые должны были быть сохранены как переопределения). Поэтому мы рекомендуем использовать режим Префаба для изменений актива Префаба и вносить переопределения в экземпляры Префаба только при необходимости. Обратите внимание, что мы также значительно улучшили рабочий процесс применения. Больше информации об этом рабочем процессе в предстоящем блоге!
Режим Префаба захватывает иерархию и вид сцены, чтобы показать актив Префаба в изоляции. Вы можете распознать этот режим по новым заголовкам в иерархии и в виде сцены. Также обратите внимание, что цвет фона режима Префаба можно настроить в настройках.

Вы можете войти в режим Префаба, сделав одно из следующих действий:
- Дважды щелкнув на Префабе в окне проекта.
- Нажав на новую кнопку со стрелкой в окне иерархии рядом с корневым объектом игры экземпляра Префаба.
- Нажав на кнопку Открыть в инспекторе для корневого объекта игры актива Префаба или экземпляра Префаба.
Чтобы включить вложение Префабов, нам пришлось внести технические изменения в бэкенд Префабов. Таким образом, технически Префабы теперь являются импортированными активами. Это означает, что вы больше не можете редактировать игровые объекты Префаба в окне проекта. По сравнению со старым рабочим процессом редактирования непосредственно в окне Проекта, Режим Префаба позволяет редактировать объекты на любом уровне и видеть, что вы делаете, в окне Сцены.
Еще одно последствие предоставления вложенности Префабов заключается в том, что вы больше не можете отключить экземпляр Префаба, чтобы внести структурные изменения в этот экземпляр. Это включает в себя удаление GameObjects, изменение родительских объектов GameObjects или замену Transform на RectTransform и наоборот. Теперь вы можете сделать все это в Режиме Префаба. В качестве альтернативы вы можете распаковать экземпляр Префаба, если хотите полностью удалить его связь с активом Префаба и, таким образом, изменить структуру получившихся простых GameObjects по своему усмотрению.
Мы ввели термин «сцена» в Редакторе как концепцию набора GameObjects, изолированных от других GameObjects. Когда вы находитесь в Режиме Префаба, хлебные крошки в верхней части окна Сцены представляют собой разные сцены. Каждая сцена похожа на отдельный «мир». По умолчанию у нас есть Главная Сцена, которая является сценой, где находятся все ваши Сцены (Сцены, которые вы загрузили и можете видеть в Иерархии). При открытии Префаба в Режиме Префаба мы создаем Сцену Префаба для содержимого Префаба. Мы не выгружаем GameObjects Главной Сцены, когда открыта Сцена Префаба, и это означает, что вы все равно можете видеть их в игровом окне.
Окно Сцены и Иерархия всегда показывают текущую сцену, которая соответствует самой правой хлебной крошке. Чтобы вернуться к Главной Сцене с вашими Сценами, нажмите кнопку «Сцены» в хлебных крошках окна Сцены или кнопку стрелки Назад в Иерархии.
Чтобы увидеть новые рабочие процессы в действии, посмотрите видео ниже:
Чтобы попробовать новые функции Префабов, загрузите предварительную сборку с нашей странице Префабов. Также ознакомьтесь с нашим специализированным форумом по Улучшенным Префабам для получения дополнительной информации, вопросов и отзывов.
Следите за новыми записями в блоге с более подробной информацией о других частях улучшенных рабочих процессов Префабов.
Если вы хотите увидеть улучшенные рабочие процессы префабов в действии, мы настоятельно рекомендуем подключиться к прямой трансляции из Unite Berlin сегодня на YouTube или Twitch. Начиная с 17:00 по берлинскому времени, вы можете увидеть Улучшенный рабочий процесс префабов с Чиро Контитинисио. После этого Рун Сковбо Йохансен и Стин Лунд помогут вам лучше понять плюсы и минусы наших решений по реализации в их Техническом углубленном погружении в новую систему префабов (18:00). Мы будем работать над редактированием докладов позже и загрузим их на наш канал YouTube в течение месяца после конференции.
