常见方法在控件蓝图中将控件的可视性(visiability)设置为可视,鼠标与UI下的场景物体无法交互。
如果不生效,可以在C++中将输入模式设置为FInputModeUIOnly(),再销毁蓝图控件之后再将输入模式设置为FInputModeGameAndUI()即可。
在事件触发时(进入场景或者BeginPlay):
UClass* MywidgetClass = LoadClass<蓝图类名>(NULL,TEXT("蓝图控件类引用");#注意加_C
#获取控制器
APlayerController* PlayerController = UGameplayStatics::GetPlayerController(GetWorld(),0);
生成蓝图控件,设置输入模式:
MyWidget = CreatWidget<蓝图控件类名>(GetWorld(),MywidgetClass);
#设置显示在最上层
MyWidget->AddToViewport(1);
#设置输入模式
PlayController->SetInputMode(FInputModeUIOnly());
最后将控件RemoveFromParent()的时候,再将输入设置改回来即可。