Prefab constructor - RamilGauss/MMO-Framework GitHub Wiki
Конструирование префаба в памяти.
Процесс инстанцирования префаба с помощью PrefabManager по сути неизвестно когда закончится. Конечно, можно использовать Handler или лямбду. Но настроить результат хотелось бы сразу в этот же момент времени.
Пример использования:
void Handler(nsECSFramework::TEntityId eid, const TSomeComponent* pC)
{
auto pPrefabConstructor = ...;
auto prefabRootEid = pPrefabConstructor->Instantiate(prefabGuid);
auto childEid = pPrefabConstructor->GetChilds().at(0);
// Настроить одного из ребенка
TNewComponent newComponent;
newComponent.value = "xxxx";
pPrefabConstructor->SetComponent(childEid, newComponent);
auto sceneInstanceGuid = GetEntMng()->ViewComponent<TSceneInstanceGuidComponent>(eid);
pPreabManager->InstantiateObjectInMemory(prefabRootEid, sceneInstanceGuid->value);
}
Идея в том, чтобы иметь полный контроль над конструированием. Пробегаться по всей иерархии, удалять детей, настраивать компоненты и т.д.
На этапе создания префаба некоторые из его свойств еще неизвестны. Иногда даже неизвестно сколько компонентов добавится и какие значения будут иметь.