I have a class UAbilityWidget that extends UUserWidget. Then I have a class called UAbilitiesTree which also inherits from UUserWidget.
So I want to create UAbilityWidgets and add them to a canvas procedurally on UAbilitiesTree’s NativeConstruct. So I tried CreateWidget and widgetTree->ConstructWidget and both crash after being executed (take a look at the callstack below).
Here’s my code:
for (int i = 0; i < abilities.Num(); i++)
{
UAbilityWidget* widget = WidgetTree->ConstructWidget<UAbilityWidget>(UAbilityWidget::StaticClass(), FName::FName(*("AbilityWidget" + FString::FromInt(i) + "]")));
//Also tried CreateWidget<UAbilityWidget>(canvas, UAbilityWidget::StaticClass());
abilityWidgets.Add(widget);
UCanvasPanelSlot* slot = canvas->AddChildToCanvas(widget);
}
Any ideas? Thanks for any help!
[SPOILER]
Callstack:
Access violation - code c0000005 (first/second chance not available)
UE4Editor_UMG!UWidgetTree::ForEachWidget() [d:\build\++ue4\sync\engine\source\runtime\umg\private\widgettree.cpp:123]
UE4Editor_UMG!UUserWidget::GetSlotNames() [d:\build\++ue4\sync\engine\source\runtime\umg\private\userwidget.cpp:938]
UE4Editor_UMG!INamedSlotInterface::SetNamedSlotDesignerFlags() [d:\build\++ue4\sync\engine\source\runtime\umg\private\components
amedslotinterface.cpp:50]
UE4Editor_UMG!UUserWidget::SetDesignerFlags() [d:\build\++ue4\sync\engine\source\runtime\umg\private\userwidget.cpp:1307]
UE4Editor_UMG!UUserWidget::Initialize() [d:\build\++ue4\sync\engine\source\runtime\umg\private\userwidget.cpp:376]
UE4Editor_UMG!UUserWidget::CreateInstanceInternal() [d:\build\++ue4\sync\engine\source\runtime\umg\private\userwidget.cpp:2109]
UE4Editor_UMG!UUserWidget::CreateWidgetInstance() [d:\build\++ue4\sync\engine\source\runtime\umg\private\userwidget.cpp:1975]
UE4Editor_UMG!UUserWidget::CreateWidgetInstance() [d:\build\++ue4\sync\engine\source\runtime\umg\private\userwidget.cpp:1992]
UE4Editor_Hivaneph!CreateWidget<UUserWidget,UWidgetTree>() [c:\program files\epic games\ue_4.21\engine\source\runtime\umg\public\blueprint\userwidget.h:1279]
UE4Editor_Hivaneph!UAbilitiesTreeWidget::NativeConstruct() [c:\users\dev-projects\ue4\hivaneph\hivaneph\source\hivaneph\ui\abilitiestreewidget.cpp:71]
[/SPOILER]