Префабы (Prefabs) в Godot Engine

Назад в "Основы Godot Engine"



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

Суть префабов в том, что у вас есть один объект — заготовка. И этот объект служит каркасом для всех объектов, которые вы будете далее расставлять по игре. Вы создаете его один раз, настраиваете, и затем раскидываете экземпляры его там, где пожелаете. И теперь, если вы вдруг захотите изменить что-то сразу у всех объектов — изменяете оригинальный. При этом во время игры каждый из экземпляров префаба является самостоятельным объектом, который в рамках себя самого делает все свойства уникальными. Типичный пример: количество «жизней». По-умолчанию оно может быть равно стам, но во время игры вполне разумно, что пули будут отнимать это количество. И оно будет уникальным для каждого объекта.

Таким образом, префабы экономят кучу времени при разработке! Бонусом является то — что они дают возможность переносить объекты между проектами. Так, правильно настроенный GUI можно сохранить, как отдельный префаб, и «цеплять» к любому проекту.

Префаб (в идеале) позволяет сохранить в отдельный объект всё. Буквально всё. Даже целую игровую сцену.



Теперь забываем само слово «Префаб», и, помня о его значении, переносимся в Godot Engine.

Здесь нас встречают сцены. Буквально. В Godot Engine всё представлено в виде узлов (Node). Все вместе узлы представляют собой дерево. И всё это дерево является сценой.

Сцена — обособленная часть дерева. Почему так? Потому что сцена легко может стать частью другой сцены. В этом случае сцена становится узлом в другой сцене.

Так мы подходим к понятию вложенность. Она тут бесконечна. Одна сцена может содержать в себе сколько угодно узлов (объектов), а потом запросто может сама стать узлом в другой сцене.

Типичный пример — GUI. Графический интерфейс целесообразно разрабатывать в виде отдельной сцены, а потом просто размещать в тех сценах, где он требуется. Таким образом в конечной сцене может быть сколько угодно вложенных сцен.

Теперь о дубликатах.

Помните, я просил вас держать в голове значение слова «префаб»? Пора достать эти знания, и применить их к слову «сцена». Почему? Потому что аналогия полная.



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

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

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


Надеюсь, эта теория вам будет полезна.
Автор: SkanerSoft | Дата добавления: 15.07.2018 14:09 | Урок прочитан: 139 раз
Присоединяйся к розыгрышу аккаунта разработчика Google Play!
Розыгрыш проводится в честь достижения на канале SkanerSoft 15 000 подписчиков!
Количество участников не ограничено!
Подписаться на канал SkanerSoft