📅  最后修改于: 2023-12-03 14:57:18.702000             🧑  作者: Mango
虚幻引擎是一款跨平台游戏引擎,虚幻引擎 UI 是其提供的 GUI 界面解决方案。它可以轻松构建游戏 UI、应用程序 UI、AR/VR 界面等。
虚幻引擎 UI 可利用蓝图系统创建并且与代码交互,也可由 C++ 开发人员在代码中编写。
在代码中创建 Widget:
UUserWidget* Widget = CreateWidget<UUserWidget>(this, BlueprintWidget);
在 Widget 中添加所需的控件,例如 Button:
UButton* Button = Widget->WidgetTree->FindWidget<UButton>("ButtonName");
if (Button)
{
Button->OnClicked.AddDynamic(this, &MyClass::ButtonClicked);
}
编写按钮点击回调函数:
void MyClass::ButtonClicked()
{
UE_LOG(LogTemp, Log, TEXT("Button clicked!"));
}
添加 Widget 到场景中:
在 Widget 中添加所需的控件,并连接事件回调函数。
虚幻引擎 UI 支持屏幕适配,可以根据不同的分辨率和设备尺寸进行自动调整。
VirtualPointerPosition = FVector2D((MousePosition.X - X) / ScaleFactor.X, (MousePosition.Y - Y) / ScaleFactor.Y);
C++ 中添加 Button 到 Widget:
// 创建 Widget
UUserWidget* Widget = CreateWidget<UUserWidget>(this, BlueprintWidget);
// 添加 Button 控件
UButton* Button = Widget->WidgetTree->FindWidget<UButton>("ButtonName");
if (Button)
{
Button->OnClicked.AddDynamic(this, &MyClass::ButtonClicked);
}
蓝图系统中添加 Button 到 Widget: