Главная » Статьи » Уроки Godot Engine » Базовый уровень

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

Сначала определимся с теорией. И с тем, что же такое префабы.

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

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

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

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

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

 

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

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

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

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

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

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

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

 

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

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

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

 

Надеюсь, эта теория вам будет полезна.

Категория: Базовый уровень | Добавил: skanersoft (11.04.2018) | Автор: SkanerSoft E W
Просмотров: 138 | Теги: godot engine | Рейтинг: 5.0/1
Всего комментариев: 0
avatar