要渲染 UI(用户界面) 允许用户与您的应用程序交互。Unity 目前支持三种 UI 系统。 更多信息
参见 术语表 并在游戏视图中对用户的输入做出反应,请通过 UI 文档组件将 UXML 文档连接到面板设置资源。
每个 UI 文档组件都引用一个定义 UI 的 UXML 文档和一个渲染它的面板设置。您可以将多个 UXML 文档连接到单个面板设置资源。
面板设置资源在 场景场景包含游戏环境和菜单。可以将每个唯一的场景文件视为一个唯一的关卡。在每个场景中,您放置环境、障碍物和装饰,从本质上讲,将游戏分段设计和构建。 更多信息
参见 术语表 中定义了一个面板。该面板提供了 UI 层次结构附加到的根 视觉元素视觉树的一个节点,它实例化或派生自 C# VisualElement
类。您可以设置外观样式、定义行为并在屏幕上将其显示为 UI 的一部分。 更多信息
参见 术语表,并在运行时在场景中绘制 UI。您如何配置面板设置资源将决定 UI 的渲染方式。它还决定了 UI 如何对输入做出反应。例如,视觉上位于最前面的面板会在视觉上位于后面的面板之前拦截用户的点击。
您可以配置面板设置资源来执行以下操作
配置面板
一个面板可以显示来自多个 UXML 文档组件的 UI。每个 UI 文档都有一个 排序顺序 属性,用于设置 UXML 文档的渲染顺序。
将多个 UXML 文档连接到面板
选择或创建 游戏对象Unity 场景中的基本对象,可以表示角色、道具、场景、摄像机、路径点等。游戏对象的函数由附加到它的组件定义。 更多信息
参见 术语表 以托管 UI。
选择 组件 > UI 工具包 > UI 文档 以添加 UI 文档组件。
在 UIDocument 的检视器窗口中,执行以下操作
对每个 UXML 文档重复此过程。
注意:如果多个 UI 文档组件附加到同一面板设置,则所有这些文档都具有一个通用的焦点导航上下文。如果它们具有不同的面板设置,即使将它们并排排列,导航也不会自动从一个跳转到另一个。要使导航从一个跳转到另一个,必须将面板设置的 focusController
设置为要跳转到的 UI 文档组件的 FocusController
。
Unity 在对组件调用 OnEnable()
方法时加载 UI 文档组件的源 UXML 文档。为确保 视觉树一个对象图,由轻量级节点组成,保存窗口或面板中的所有元素。它定义了使用 UI 工具包构建的每个 UI。
参见 术语表 正确加载,请添加逻辑以在 OnEnable()
方法中与控件进行交互。这意味着您的脚本必须响应 OnEnable()
和 OnDisable()
以安全地引用 UXML 文档中的视觉元素。
UI 文档组件在响应 OnEnable()
和 OnDisable()
方法时清除其内容。此方法会删除 UI 文档很快不会重用的 UI 元素,并有效地清除关联的资源。此外,如果 UI 文档组件未分配 面板设置 资源,它会自动清除其内容。
要隐藏很快可能被重用或需要快速显示以避免初始化开销的 UI 元素,将 UIDocument.rootVisualElement
的 display
设置为 none
。您也可以使用它来隐藏作为更大 UI 层次结构一部分的 UI 元素组件。