Технология префаб пришла в программирование из модульного строительства домов. В строительстве технология prefabs (префабы) — это способ быстро изготавливать дома. Суть заключается в том, что готовые модули домов собираются и изготавливаются отдельно на производстве. Потом эти модули перевозятся на место строительства дома и там собираются строителями в дом по принципу конструктора. То есть строителям остается только собрать дом как из LEGO, и не нужно ничего измерять, подгонять и вычитывать — все это уже сделано на производстве. Это существенно ускоряет строительство новых домов. Префаб в строительстве — это возможность ускорить работу.
Префаб в программировании свойственен при разработке игр на Unity. Этот игровой движок первым внедрил префаб-технологию. Главная цель внедрения prefab — помочь разработчикам быстрее разрабатывать игры. То есть префаб в программировании выполняет ту же миссию, как и в строительстве,а именно, ускоряет работу.
Что такое префаб?
Префаб при разработке игр выполняет роль шаблона для создания множества объектов в игровой сцене. Каждое изменение в префабе мгновенно отражается во всех его экземплярах. Объекты префаба могут использоваться сразу в нескольких игровых сценах — изменения в префабе касаются их тоже.
В практике разработчиков игр встречаются такие ситуации, когда нужно изменить один объект, находящийся в нескольких сценах. Количество изменений одного объекта может исчисляться десятками и даже сотнями. Например, нужно изменить стул, расположенный в 20 офисах в 25 сценах. Итого нужно изменить 500 объектов. Используя префаб-технологию, стул изменяется в одном месте, а изменения произойдут в 500 местах. Такой подход намного легче, чем изменять 500 стульев по отдельности.
Префаб отличается от игровых сцен, карт, уровней и др. Он находится внутри них. Поэтому в одной сцене может быть несколько префабов. Например, в одном игровом городе могут располагаться префабы зданий, машин, отдельных кварталов и других повторяющихся элементов.
Самое главное преимущество префаба — изменения вносятся в одном месте, а применяются они ко всем копиям. При этом кастомизировать можно каждую отдельную копию префаба, если это необходимо выполнить.
Как использовать префаб в игре
Создать префаб при программировании игры на Unity просто. Для этого нужно:
Открыть в меню пункт «Asset» и найти в нем «Create Prefab».
Потом «перетащить» объект со сцены в пустой префаб.
Таким образом, у вас создастся префаб, который вы сможете настраивать по своему усмотрению. Если нужно будет создавать копии префаба в игре — из окна «Project» «перетаскиваете» созданный вами префаб на редактируемую сцену. Имена копий префабов подсвечиваются синим цветом в окне «Hierarchy», поэтому вы их не потеряете. Напомним, что имена стандартных объектов в этом окне подсвечиваются черным цветом.
Префаб-технология удобна при создании NPC. Но чтобы не делать их полностью похожими друг на друга, можно редактировать их внешние данные по отдельности, что придаст им больше реалистичности. Префаб-подход позволяет это делать.
Важно отметить, что редактировать префаб можно где угодно. То есть в любой игровой сцене вы находите копию префаба и редактируете ее. Изменения в этой копии отразятся во всех копиях. Такой подход наиболее актуален, потому что нет необходимости редактировать только оригинальный префаб. При этом можно сделать так, что настройка копий префабов будет происходить только через оригинальный экземпляр.
Всю игру можно выстроить из префабов. Например, при разработке городской игровой сцены можно:
вначале сделать префабы зданий;
потом из префабов зданий сделать префаб улицы;
из префабов улиц сделать префаб квартала;
и др.
То есть одиночные префабы организуют секторы из префабов. Такой подход удобен, если над игровой сценой работают несколько разработчиков. За каждым разработчиком закрепляется отдельный одиночный префаб, из которых формируются секторы, композиции и сцены.
Заключение
Что такое префаб? Это «заготовка» игрового объекта, которая потом многократно копируется в игровых сценах. Префабом может быть что угодно:
небольшие объекты типа лампы, двери, стула, стола, фонарного столба, мусорного бака и др.;
объекты побольше типа, машин, игровых персонажей, отдельных зданий и др.;
большие объекты типа кварталов, пустынь, городов, горных хребтов, озер и др.;
звуки, освещение, геймплей и др.
Префаб нужен для того, чтобы ускорить работу над игрой.

Другое