Hi there I am Beginner I’m sorry if I made a mistake in my writing.
I want to Create Widget and Drag+Drop with NativeOnDragDetected() But I have two problem
-
Crash SetBrush
new Create Widget->SetBrush is Crash
but Original old Widget->SetBrush is Not Crash -
No Create DragDropWidget
Widgets need to be created when dragging, but cannot be created
Clearly It worked when I used Blueprint
but it doesn’t come up when I used C++
void UItemSlot::NativeOnDragDetected(const FGeometry & InGeometry, const FPointerEvent & InMouseEvent, UDragDropOperation *& OutOperation)
{
Super::NativeOnDragDetected(InGeometry, InMouseEvent, OutOperation);
if (IsValid(DraggedImage))
{
UDraggedItem* DI = CreateWidget<UDraggedItem>(this);
DI->SetOwningPlayer(GetOwningPlayer());
// Crash
//DI->SlotImage->SetBrush(UWidgetBlueprintLibrary::MakeBrushFromTexture(ActionImage));
// No Crash
this->SlotImage->SetBrush(UWidgetBlueprintLibrary::MakeBrushFromTexture(DraggedImage));
UItemDrag* ItemDrag = Cast<UItemDrag>(UWidgetBlueprintLibrary::CreateDragDropOperation(UItemDrag::StaticClass()));
if (IsValid(ItemDrag))
{
ItemDrag->DefaultDragVisual = DI;
ItemDrag->Pivot = EDragPivot::MouseDown;
OutOperation = ItemDrag;
}
}
}
UMG