Micro Furrier:
GetMousePositionOnViewport节点相当于GetMousePositionOnPlatform+GetViewportWidgetGeometry+AbsoluteToLocal
参见引擎代码:Runtime/UMG/Private/WidgetLayoutLibrary.cpp
FVector2D UWidgetLayoutLibrary::GetMousePositionOnPlatform()
{
if ( FSlateApplication::IsInitialized() )
{
return FSlateApplication::Get().GetCursorPos();
}
return FVector2D(0, 0);
}
FVector2D UWidgetLayoutLibrary::GetMousePositionOnViewport(UObject* WorldContextObject)
{
if ( FSlateApplication::IsInitialized() )
{
FVector2D MousePosition = FSlateApplication::Get().GetCursorPos();
FGeometry ViewportGeometry = GetViewportWidgetGeometry(WorldContextObject);
return ViewportGeometry.AbsoluteToLocal(MousePosition);
}
return FVector2D(0, 0);
}