Unity 6.3
0 онлайн 102 гостей 3 в системе
Вход
GameObjects Шаг 44 из 56

Создать префабы

Чтобы создать и использовать префабы в вашем проекте, вы должны выполнить следующие действия:

  1. Создать префаб актив.
  2. Создать экземпляр префаб актива.

Создание ассета префаб

Чтобы создать ресурс префаб, выполните следующие действия:

  1. Создать GameObject и настроить его положение, масштаб, вращение, компоненты и другие свойства по мере необходимости.
  2. Перетащите GameObject в Assets папка в Project окно. Вы можете по желанию выбрать более одного GameObject для создания нескольких префаб ассетов.

Затем Unity создает ресурс префаб из ресурса GameObject, всех его компонентов и дочернего ресурса GameObjects. Первоначальный ресурс GameObject становится экземпляром вновь созданного ресурса префаб.

GameObject с именем Health Pack в левом окне. После перетаскивания GameObject в дочернюю папку папки Assets объект Health Pack сохраняется как файл .prefab, а оригинальный GameObject становится экземпляром ассета префаб. Inspector отображает подробности ассета Health Pack префаб.
Пакет здоровья GameObject в левом окне. После перетаскивания GameObject в дочернюю папку папки Assets, объект Health Pack сохраняется как файл .prefab, и оригинальный GameObject становится экземпляром ассета префаб. Inspector отображает сведения об ассете Health Pack префаб.

Если вы перетащите несколько GameObjects, которые еще не являются префабы, в окно Project, Unity создаст новые префаб ассеты для каждого из них без каких-либо дополнительных действий. Однако, если любой из GameObjects является существующим вариантом префабы или префаб варианта, Unity отобразит диалог, в котором вас попросят подтвердить, хотите ли вы создать новые префаб ассеты или новые варианты из GameObjects.

Заменить ассет префаб

Вы можете заменить ассет префаб экземпляром GameObject или префаб, который находится в окне Hierarchy. Чтобы заменить ассет префаб:

  1. Выберите GameObject или префаб в окне Hierarchy.
  2. Перетащите его на существующий ресурс префаб в окне Project.

Если содержимое экземпляра GameObject или префаб отличается от содержимого ассета префаб, то Unity отображает диалоговое окно с подтверждением намерения заменить ассет префаб.

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

Потому что Unity выполняет это сопоставление только по имени, если существует несколько GameObjects с тем же названием в префаб иерархии ассета, соответствие непредсказуемо. Поэтому, чтобы обеспечить Unity сохраняет ссылки при сохранении над существующим префаб, убедитесь, что все GameObjects в рамках префаб имеют уникальные имена.

Unity ведет себя аналогичным образом, если GameObject имеет более одного компонента одного и того же типа, присоединенного к нему.

Создание экземпляра префаб

Чтобы создать экземпляр ассета префаб:

  1. Выберите ресурс префаб в окне Project.
  2. Перетащите ассет префаб в представление Hierarchy или Scene.

Также можно создавать экземпляры префабы во время выполнения с помощью скриптов. Дополнительные сведения см. в разделе Создание экземпляра префабы.

Заменить a префаб экземпляра префаб ассеты

Вы можете заменить префаб родитель экземпляра префаб ассета, сохраняя при этом позицию, вращение и масштаб экземпляра. Unity объединяет содержание новых префаб ассета и сохраняет любые переопределения и ссылки с помощью соответствия имен.

Ассет префаб можно заменить следующим образом:

  • В течение Inspector для экземпляра префаб:
    1. Перетащите ассет префаб из окна Project в поле Префаб в Inspector.
    2. Если префаб имеется переопределения, Unity отображает контекстное меню, и вы можете выбрать либо Заменить и сохранить переопределения сохранить любые переопределения, или Заменить и отбросить любые переопределения.
  • В окне Hierarchy:
    1. Щелкните правой кнопкой мыши экземпляр префаб или GameObject.
    2. Выберите Префаб > Заменитьили Заменить и сохранить переопределения, чтобы сохранить переопределения.
    3. Появится окно Select GameObject, и вы сможете выбрать ассет префаб, которым хотите заменить его.
  • В окне Project:
    1. Удерживайте нажатой клавишу Ctrl (macOS: Command) и перетащите ассет префаб на экземпляр префаб или GameObject в экземпляре Hierarchy.
    2. В контекстном меню выберите Заменитьили Заменить и сохранить переопределения для сохранения переопределений.

Также можно использовать методы PrefabUtility.ReplacePrefabAssetOfPrefabInstance для управления этим поведением в скриптах.

Дополнительные ресурсы