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

MADS NYHOLM / UNITY TECHNOLOGIESStaff Software Engineer
Jun 20, 2018|6 Мин
Представляем новые рабочие процессы 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: Живи сегодня

Если вы хотите увидеть улучшенные рабочие процессы префабов в действии, мы настоятельно рекомендуем подключиться к прямой трансляции из Unite Berlin сегодня на YouTube или Twitch. Начиная с 17:00 по берлинскому времени, вы можете увидеть Улучшенный рабочий процесс префабов с Чиро Контитинисио. После этого Рун Сковбо Йохансен и Стин Лунд помогут вам лучше понять плюсы и минусы наших решений по реализации в их Техническом углубленном погружении в новую систему префабов (18:00). Мы будем работать над редактированием докладов позже и загрузим их на наш канал YouTube в течение месяца после конференции.