Table of Contents

将 UI 添加到场景

入门 美术 设计师

创建 UI 页面后,将其作为组件添加到场景中的实体上。

  1. 在场景编辑器中,创建一个空实体。为此,请右键单击场景并选择空实体(Empty entity)。

    创建空实体

  2. 在属性网格(默认位于右侧)中,单击添加组件并选择 UI。

    添加 UI 组件

    Game Studio 会向实体添加一个 UI 组件。

    UI 组件

  3. 在 Page 旁边,单击 手形图标(选择资产)。

    **选择资产(Select an asset)**窗口随即打开。

    选择 UI 页面

  4. 选择要添加的 UI 页面,然后单击确定。

    有关如何创建和编辑 UI 页面的信息,请参阅 UI 编辑器页面。

Tip

若要阻止 UI 在编辑器中遮挡场景的其他部分,请在属性网格中禁用 UI 组件。

禁用 UI 组件

运行游戏前请记得重新启用该组件。否则,Stride 不会显示 UI。

在代码中将 UI 页面指定给 UI 页面组件

你可以将 UI 页面指定给 UI 组件的 Page 属性。

// 该属性可以在 Game Studio 中通过 UI 页面资产进行指定
public UIPage MyPage { get; set; }

protected override void LoadScene()
{
    InitializeUI();
}

public void InitializeUI()
{
    var rootElement = MyPage.RootElement;
    // 要在 UI 页面中查找特定元素,可以使用扩展方法
    var button = rootElement.FindVisualChildOfType<Button>("buttonOk");

    // 如果 UI 树中不存在名为 "buttonOk" 的元素,或者类型不匹配,
    // 上面的方法将返回 null
    if (button != null)
    {
        // 将委托附加到 Click 事件
        button.Click += delegate
        {
            // 在这里做些什么……
        };
    }

    // 将页面指定给 UI 组件
    var uiComponent = Entity.Get<UIComponent>();
    uiComponent.Page = MyPage;
}

UI 组件属性

属性 说明
Page 组件显示的 UI 页面
Sampler 纹理采样方法:点(最近邻)、线性(默认选项)或各向异性
Full screen 注意: 我们建议你使用此选项,因为其他方式存在问题
Resolution UI 分辨率(以像素为单位)
Size 获取或设置 UI 组件在世界单位中的实际大小
Resolution stretch 虚拟分辨率值的使用方式(FixedWithFixedHeight、FixedWithAdaptableHeight 或 FixedHeightAdaptableWidth)
Billboard 如果选中,UI 始终面向摄像机。注意: 在当前版本的 Stride 中,禁用广告牌模式会导致 UI 文本错误
Snap text 如果选中,UI 文本将对齐到最接近的像素
Fixed size 获取或设置指示 UI 是否应始终在屏幕上保持固定大小的值(例如,高度为 1 的组件将使用屏幕的 0.1)。注意: 此功能在当前版本的 Stride 中不起作用
Render group UI 使用的渲染组

UI 脚本

要使 UI 具有交互性,需要添加脚本。没有脚本时,UI 只是不可交互的图像。

有关在 Stride 中实现 UI 的示例,请参阅 Stride 附带的游戏菜单 UI 示例。

UI 示例项目

另请参阅