Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Переопределение экземпляра

Переопределение экземпляра позволяет создавать варианты между Prefabтипом ресурса, который позволяет хранить GameObject с компонентами и свойствами. Префаб действует как шаблон, из которого вы можете создавать новые экземпляры объектов в сцене. Подробнее
Просмотреть экземпляры Словарь
, привязывая эти экземпляры к одному и тому же сборному активу.

Когда вы изменяете готовый актив, изменения отражаются во всех его экземплярах. Однако вы также можете вносить изменения непосредственно в отдельный экземпляр. При этом создается переопределение экземпляра для этого конкретного экземпляра.

Например, у вас есть сборный актив «Робот», который вы разместили на нескольких уровнях в своей игре. Однако каждый экземпляр «Робота» имеет разное значение скорости и свой аудиоклипконтейнер для аудиоданных в Unity. . Unity поддерживает моно-, стерео- и многоканальные аудиоресурсы (до восьми каналов). Unity может импортировать форматы аудиофайлов .aif, .wav, .mp3 и .ogg, а также форматы модуля трекера .xm, .mod, .it и .s3m. Подробнее
См. в назначенном Словаре
.

Существует четыре различных типа переопределения экземпляра:

  • Переопределение значения свойства
  • Добавление компонента
  • Удаление компонента
  • Добавление дочернего игрового объекта

У экземпляров Prefab есть некоторые ограничения: вы не можете изменить родитель GameObjectфундаментальный объект в сценах Unity, который может представлять персонажей. , реквизит, декорации, камеры, путевые точки и многое другое. Функциональность GameObject определяется прикрепленными к нему компонентами. Подробнее
См. в Словарь
, который является частью Prefab, и вы не можете удалить GameObject это часть префаба. Однако вы можете деактивировать GameObject, что является хорошей заменой удаления GameObject (это считается переопределением свойства).

В Инспектореокне Unity, в котором отображается информация о текущем выбранном игровом объекте, активе или настройках проекта, что позволяет вам проверять и отредактируйте значения. Дополнительная информация
В окне Словарь
переопределения экземпляров отображаются с меткой имени в жирный и с синей линией на левом поле. Когда вы добавляете новый компонент в экземпляр Prefab, синяя линия на полях охватывает весь компонент.

Окна инспектора, показывающие экземпляр Prefab с переопределенным свойством Is Trigger и компонентом Rigidbody, добавленным в качестве переопределения..
Окна инспектора, показывающие экземпляр Prefab с переопределенным свойством Is Trigger и компонентом Rigidbody, добавленным в качестве переопределения.

Добавленные и удаленные компоненты также имеют значки "плюс" и "минус" на своих значках в Инспекторе, а добавленные игровые объекты имеют значок "плюс" на значке в Иерархии.

Окно Hierarchy, показывающее экземпляр Prefab с дочерним GameObject с именем GermOBlaster, добавленным в качестве переопределения..
Окно Hierarchy, показывающее экземпляр Prefab с дочерним GameObject с именем GermOBlaster, добавленным в качестве переопределения.

Переопределения имеют приоритет

Значение переопределенного свойства экземпляра префаба всегда имеет приоритет над значением из актива префаба. Это означает, что если вы измените свойство сборного объекта, это не повлияет на экземпляры, в которых это свойство переопределено.

Если вы вносите изменения в готовый актив, и он не обновляет все экземпляры должным образом, вам следует проверить, не переопределено ли это свойство в экземпляре. Лучше всего использовать переопределения экземпляров только в случае крайней необходимости, потому что, если у вас есть большое количество переопределений экземпляров в вашем проекте, может быть трудно сказать, повлияют ли ваши изменения в Prefab Asset на все экземпляры.

Выравнивание зависит от экземпляра Prefab

выравнивание экземпляра Prefab — это особый случай, и он обрабатывается иначе, чем другие свойства. Значения alignment никогда не переносятся из Prefab Asset в экземпляры Prefab. Это означает, что они всегда могут отличаться от выравнивания Prefab Asset без явного переопределения экземпляра. В частности, выравнивание означает свойства Положение и Поворот в корневом преобразованииПреобразование на вершине иерархии преобразований. В префабе корневое преобразование является самым верхним преобразованием в префабе. В анимированном персонаже-гуманоиде корневое преобразование является проекцией преобразования тела на плоскость Y и вычисляется во время выполнения. В каждом кадре вычисляется изменение корневого преобразования, а затем оно применяется к игровому объекту, чтобы заставить его двигаться. Подробнее
См. в Словарь
экземпляра Prefab, а также Прямоугольное преобразование также включает в себя ширину, высоту, поля, якоряИнструмент компоновки пользовательского интерфейса, который фиксирует элемент пользовательского интерфейса в родительском элементе. Якоря отображаются в виде четырех маленьких треугольных маркеров в представлении «Сцена», а информация об якорях также отображается в Инспекторе. Подробнее
См. в свойствах Словарь
и Pivot.

Это связано с тем, что крайне редко требуется, чтобы несколько экземпляров префаба занимали одинаковое положение и поворот. Чаще всего вам нужно, чтобы ваши сборные экземпляры находились в разных положениях и повернуты, поэтому Unity не считает их переопределением сборных.


  • В 2018.3 добавлены вложенные префабы и варианты префабов.
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3