Динамически создавать виджет панели UMG

Когда я динамически создаю / создаю экземпляры UMG-виджетов, которые являются производными от UUserWidget, Я использую CreateWidget, Однако это не работает для панели лайк UWrapBox:

TSubclassOf<UWrapBox> WrapBoxClass; // Assigned in Unreal Engine Editor.
auto wrapBox = CreateWidget<UWrapBox>(GetOwningPlayer(), WrapBoxClass);
// -> Error CreateWidget can only be used on UUserWidget children.
UPanelWidget* parent;
parent->AddChild(wrapBox);

Поскольку я не хочу оборачивать панель в пользовательский виджет (который будет работать как обходной путь), я использую NewObject:

auto wrapBox = NewObject<UWrapBox>();
UPanelWidget* parent;
parent->AddChild(wrapBox);

Это похоже на работу при тестировании в редакторе, однако CreateWidget проверяет, если APlayerController является локальным, устанавливает PlayerContext и назначает внешний объект. Ничего из этого не происходит с NewObject, UWidgetTree::ConstructWidget также использует NewObject для создания.

Итак, мои вопросы:

  1. Предлагает ли UE4 встроенный способ динамического создания панелей UMG, таких как UserWidgets?
  2. Какие побочные эффекты я должен ожидать при использовании NewObject() за
    создание виджетов?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]