跳至正文
版本:最新版 - a1.156.0 ⚖️

🪟 Widget

Failed to load class '控件' (Class) data.

Widget 类提供了一种非常灵活的方式,可以在游戏内创建和使用虚幻控件作为 UI。

备注

Widget 类中未公开大部分参数,应使用 CallBlueprintEvent() 方法进行调用,该方法会调用底层特定的 Widget 方法。

🎒 示例​

Creating a Simple Native Text and adding it to screen​

Client/Index.lua
local my_text = Widget(NativeWidget.Text)
my_text:CallBlueprintEvent("SetText", "Hello World!")
my_text:AddToViewport()
提示

SetText 是来自 UTextBlock 的方法,它是与 NativeWidget.Text 关联的 Widget。

创建带有子项的控件​

Client/Index.lua
local my_vertical_box = Widget(NativeWidget.VerticalBox)
my_vertical_box:AddToViewport()

local my_text = Widget(NativeWidget.Text)
my_text:CallBlueprintEvent("SetText", "Hello World!")

local my_button = Widget(NativeWidget.Button)

my_vertical_box:AddChild(my_text)
my_vertical_box:AddChild(my_button)

将 WebUI 用作图像笔刷​

Client/Index.lua
local webui = WebUI("mywebui", "https://google.com", WidgetVisibility.Hidden)

local my_image = Widget(NativeWidget.Image)
my_image:CallBlueprintEvent("SetBrushFromMaterial", webui)
my_image:AddToViewport()
提示

SetBrushFromMaterial is a method from UImage, and expects a MaterialInstance as parameter. 传入 WebUI、SceneCapture 或 Canvas 作为参数时,会自动将其转换为其内部材质!

订阅调度器​

Client/Index.lua
local my_button = Widget(NativeWidget.Button)

-- 在内部添加文本
local my_text = Widget(NativeWidget.Text)
my_text:CallBlueprintEvent("SetText", "Press Me!")
my_button:AddChild(my_text)

-- 绑定原生 OnClicked 调度器
my_button:BindBlueprintEventDispatcher("OnClicked", function()
Console.Log("clicked!")
end)

-- 将按钮添加到视口(将填满整个屏幕)
my_button:AddToViewport()

📚 库和框架​

以下是社区创建的使用 Widget 扩展其可能性的库和框架列表:

🛠 构造函数​

Failed to load constructor '控件' (Class) data.

🦠 函数​

Failed to load class '控件' (Class) data.

🚀 事件​

Failed to load class '控件' (Class) data.

✅ NativeWidgets 与虚幻控件的关系​

List of the relation Unreal native Widgets ↔ NativeWidget Enums:

枚举虚幻类是否为面板
NativeWidget.BorderBorder✅
NativeWidget.ButtonButton✅
NativeWidget.CheckBoxCheckBox✅
NativeWidget.ImageImage❌
NativeWidget.ProgressBarProgressBar❌
NativeWidget.RichTextBlockRichTextBlock❌
NativeWidget.SliderSlider❌
NativeWidget.TextTextBlock❌
NativeWidget.ComboBoxComboBox❌
NativeWidget.EditableTextEditableText❌
NativeWidget.EditableTextMultiLineMultiLineEditableText❌
NativeWidget.SpinBoxSpinBox❌
NativeWidget.TextBoxEditableTextBox❌
NativeWidget.TextBoxMultiLineMultiLineEditableTextBox❌
NativeWidget.CanvasPanelCanvasPanel✅
NativeWidget.GridPanelGridPanel✅
NativeWidget.HorizontalBoxHorizontalBox✅
NativeWidget.OverlayOverlay✅
NativeWidget.ScaleBoxScaleBox✅
NativeWidget.ScrollBoxScrollBox✅
NativeWidget.SizeBoxSizeBox✅
NativeWidget.UniformGridPanelUniformGridPanel✅
NativeWidget.VerticalBoxVerticalBox✅
NativeWidget.WrapBoxWrapBox✅
NativeWidget.BackgroundBlurBackgroundBlur✅

✅ 支持的参数类型列表​

请在蓝图页面查看所有支持的参数类型。