要渲染__ UI__(即用户界面,User Interface)让用户能够与您的应用程序进行交互。Unity 目前支持三种 UI 系统。更多信息
See in Glossary 并对游戏视图中用户的输入做出反应,请通过 UI 文档组件将 UXML 文档连接到面板设置资产。
每个 UI 文档组件都引用一个定义 UI 的 UXML 文档和一个渲染该 UI 的面板设置。可以将多个 UXML 文档连接到单个面板设置资产。
面板设置 (Panel Settings) 资产定义了场景中的面板。该面板提供附加到 UI 层级视图的根视觉元素,并在运行时在场景中绘制 UI。如何配置面板设置资产决定了 UI 的渲染方式。它还将决定 UI 对输入的反应。例如,视觉上位于前面的面板会在视觉上位于后面的面板之前拦截用户的点击。
您可以配置面板设置资产来执行以下操作:
要配置面板,请执行以下操作:
一个面板可以显示来自多个 UXML 文档组件的 UI。每个 UI 文档都有一个排列顺序 (Sort Order) 属性,用于设置 UXML 文档渲染顺序:
要将多个 UXML 文档连接到面板,请执行以下操作:
选择或创建一个游戏对象来托管 UI。
选择组件 (Component) > UI 工具包 (UI Toolkit) > UI 文档 (UI Document) 以添加 UI 文档组件。
在 UIDocument 的检视面板 (Inspector) 窗口中,执行以下操作:
对每个 UXML 文档重复此过程。
注意:如果有多个附加到同一面板设置的 UI 文档组件,则所有这些文档都具有一个共同的焦点导航上下文。如果它们具有不同的面板设置,即使将它们并排排列,导航也不会自动从一个面板设置跳到另一个面板设置。要使导航从一个面板跳转到另一个面板,必须将面板设置 (Panel Settings) 的 focusController 设置为要跳转到的 UI 文档组件的 FocusController。
Unity 在组件上调用 OnEnable() 方法时加载 UI 文档组件的源 UXML 文档。为确保正确加载视觉树,请添加逻辑以与 OnEnable() 方法内的控件交互。这意味着脚本必须响应 OnEnable() 和 OnDisable(),以便安全地引用 UXML 文档中的视觉元素。
UI 文档组件在响应 OnEnable() 和 OnDisable() 方法时会清除其内容。此方法会删除 UI 文档不会很快重用的 UI 元素,并有效清除关联的资源。此外,如果未为 UI 文档组件分配面板设置 (Panel Settings) 资产,则会自动清除其内容。
要隐藏可能很快重用或需要快速出现的 UI 元素以避免初始化惩罚,请将 UIDocument.rootVisualElement 的 display 设置为 none。还可以使用此属性来隐藏属于更大 UI 层级视图的 UI 元素组件。