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);
}

Идея в том, чтобы иметь полный контроль над конструированием. Пробегаться по всей иерархии, удалять детей, настраивать компоненты и т.д.

На этапе создания префаба некоторые из его свойств еще неизвестны. Иногда даже неизвестно сколько компонентов добавится и какие значения будут иметь.