📜  虚幻引擎 ui (1)

📅  最后修改于: 2023-12-03 14:57:18.702000             🧑  作者: Mango

虚幻引擎 UI

简介

虚幻引擎是一款跨平台游戏引擎,虚幻引擎 UI 是其提供的 GUI 界面解决方案。它可以轻松构建游戏 UI、应用程序 UI、AR/VR 界面等。

虚幻引擎 UI 可利用蓝图系统创建并且与代码交互,也可由 C++ 开发人员在代码中编写。

特点
  • 支持跨平台开发
  • 提供大量 UI 控件
  • 支持蓝图系统和代码交互
  • 可通过 C++ 编写 UI
  • 支持屏幕适配
使用方法
C++ 中使用虚幻引擎 UI
  1. 在代码中创建 Widget:

    UUserWidget* Widget = CreateWidget<UUserWidget>(this, BlueprintWidget);
    
  2. 在 Widget 中添加所需的控件,例如 Button:

    UButton* Button = Widget->WidgetTree->FindWidget<UButton>("ButtonName");
    if (Button)
    {
        Button->OnClicked.AddDynamic(this, &MyClass::ButtonClicked);
    }
    
  3. 编写按钮点击回调函数:

    void MyClass::ButtonClicked()
    {
        UE_LOG(LogTemp, Log, TEXT("Button clicked!"));
    }
    
蓝图系统中使用虚幻引擎 UI
  1. 添加 Widget 到场景中:

    Add Widget To Viewport

  2. 在 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:

Add Button To Widget