Unity работает с префабами

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

Случаи, когда префабы полезны:

  • Объекты окружающей среды (деревья, кусты, камни и т. д.)
  • NPC (неигровые персонажи)
  • Снаряды
  • Экземпляры игроков
  • Любые объекты, которые необходимо повторно использовать в игре.

Пример использования

При перетаскивании моделей непосредственно на сцену с ними часто возникают некоторые проблемы, такие как:

  • Отсутствуют текстуры
  • Неправильный масштаб
  • Неправильное вращение

Модель дерева с материалом по умолчанию

Вышеуказанные проблемы можно легко исправить в сцене (назначив правильный материал, изменив масштаб/поворот и т. д.):

Модель дерева с правильным материалом

Однако, если вы планируете использовать модель повторно и/или в различных сценах, повторение описанных выше шагов быстро станет утомительной задачей, поэтому вместо этого мы можем сохранить модель в префабе.

Как создать префаб

  • Чтобы создать префаб в Unity, просто перетащите объект из представления «Сцена» в представление «Проект».

Unity 3D Создание префаба

  • После того, как префаб создан, его можно перебросить в любую сцену, создав точную копию:

Представление проекта префаба Unity

Редактирование префабов

Редактирование существующих префабов осуществляется двумя способами: путем их изменения в редакторе префабов или путем изменения их в сцене.

Изменение в редакторе префабов

  • Выберите префаб в представлении «Проект», затем в представлении «Инспектор» нажмите "Open Prefab"

  • Префаб откроется в редакторе, где вы сможете его изменить.

  • Завершив изменение, щелкните стрелку назад в представлении иерархии, чтобы выйти из редактирования и сохранить изменения.

Unity 3D Сохранить изменения префаба (метод 1)

Изменение сцены

  • Перетащите префаб в представление «Сцена» и отредактируйте его там.

  • В моем случае я добавил еще один объект в иерархию (обратите внимание на символ (+) рядом со значком).
  • При изменении префабов в сцене изменения не сохраняются автоматически, вместо этого вам нужно вручную выбрать корневой объект префаба и в режиме инспектора нажать "Overrides", затем нажать "Apply All", чтобы сохранить изменения, или "Revert All" чтобы отменить изменения.

  • Некоторые действия не поддерживаются при редактировании префаба непосредственно в сцене, например, если вам нужно реструктурировать иерархию, вам будет представлено сообщение "Cannot restructure Prefab instance" и варианты "Open Prefab" или "Cancel".

Чтобы реструктурировать экземпляр Prefab, щелкните 'Open Prefab' или щелкните правой кнопкой мыши префаб в представлении иерархии, затем выберите Prefab -> Unpack или Prefab -> Unpack Completely.

Распаковка префаба удалит его связь с основным префабом, что сделает его полностью доступным для редактирования в сцене.

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

Unity 3D Сохранить изменения префаба (метод 2)

Иногда, если изменения слишком радикальные, вам будет представлено подтверждающее сообщение.

Обязательно дважды проверьте, что вы изменяете правильный префаб, затем нажмите "Replace Anyway", чтобы завершить действие, или «Не заменять», чтобы отменить действие.

Сообщение о подтверждении замены префаба Unity 3D

Новый префаб теперь сохранен и готов к использованию.

Рекомендуемые статьи
Как рисовать деревья на местности в Unity
Использование пакета ресурсов в Unity
Необходимые ресурсы общего назначения для Unity
Реализация концепций объектно-ориентированного программирования (ООП) в Unity
Создание системы интерактивного меню в Unity
Unity Mecanim Как воспроизвести анимацию при нажатии клавиши
Советы по Twitter для Unity