Unity3D :运行时 UI 事件系统

推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生

运行时 UI 事件系统

UI 工具包使用事件系统
处理输入并将事件发送到所有活动面板。

用户界面
Toolkit 的事件系统可以从 IMGUI 和旧版接收事件输入管理器
.导航事件是从旧版输入管理器中定义的轴创建的。其他事件来自 IMGUI 事件队列。

除特定实例外,无需将组件添加到现场
以使用事件系统。

具有多个面板设置资源的事件系统

如果场景使用多个面板设置资源,则事件系统会根据其排序顺序将指针事件发送到其面板。指针事件在面板中传播,直到面板对其做出反应。

使用事件影响焦点元素的第一个面板将成为事件系统的焦点面板。该面板将继续接收键盘事件,直到另一个事件导致另一个面板成为焦点面板。

注意:停止事件的传播和给予元素焦点是两件不同的事情。例如,单击按钮时,它会停止传播,只允许按钮对被按下做出反应,但不会阻止单击的其他默认操作,例如为按钮提供焦点,或者通常,为单击的任何可聚焦元素提供焦点。

将 uGUI 与 UI 工具包结合使用

您可以同时使用 UI 工具包 UI 文档和 uGUI 组件。

在场景中添加第一个 uGUI 元素时,事件系统和独立输入模块会自动添加到场景中:

  • 事件系统允许 uGUI 对象响应事件。
  • 独立输入模块将事件调度到 UI 工具包元素。

事件系统读取场景并执行事件,而独立输入模块解释输入并请求事件执行。您可以将独立输入模块替换为其他输入模块。其他输入模块会更改消耗的输入,但所有事件仍会通过事件系统执行。

UI 工具包使用面板的排序顺序,并将其与 uGUI 画布和其他有效光线投射目标的排序顺序进行比较,以确定指针事件是应发送到 UI 工具包元素还是 uGUI 对象,还是发送到场景中的其他内容。同样,UI 工具包设置事件系统,以确保当 UI 工具包面板想要获得焦点时,它会从其他 uGUI 对象中删除焦点,并且当 uGUI 对象变为选中状态时,UI 工具包面板会自动失去其焦点。currentSelectedGameObject

要手动添加事件系统,请选择游戏对象> UI >事件系统

将事件系统和输入系统与 UI 工具包配合使用

当您将 UI 工具包(和 uGUI)与不同的输入系统一起使用时,您需要选择不同的输入模块和事件系统。

下表描述了每个输入系统用法所需的组件和设置:

用法必需组件主动输入处理
具有旧版输入管理器的 UI 工具包元素使用默认事件系统。不需要场景组件。输入管理器(旧)。
带有输入系统包的 UI 工具包元素输入系统 UI 输入模块事件系统组件。输入系统包(新)
具有旧版输入管理器的 UI 工具包元素和 uGUI 组件独立输入模块事件系统组件。输入管理器(旧)两者
带有输入系统包的 UI 工具包元素和 uGUI 组件输入系统 UI 输入模块事件系统组件。输入系统包(新)两者兼而有之

您可以在“编辑>项目设置”>播放器”>“活动输入处理”中找到“活动输入处理”设置。

使用输入系统包

可以将 UI 工具包与输入系统包一起使用:

  1. 使用程序包管理器安装输入系统程序包。
  2. 选择“编辑”>“项目设置>播放器。
  3. “活动输入处理”设置为“输入系统包(新)”。
  4. 选择游戏对象> UI >事件系统。 这将添加一个事件系统 游戏对象
    这包括场景中的独立输入模块。该模块显示一条错误消息以及检查员
    窗。
  5. 选择“替换为输入系统 UIInput模块”,将独立输入模块替换为输入系统 UI 输入模块。输入系统 UI 输入模块及其随附的事件系统允许正确调度 UI 工具包和 uGUI 元素的事件

3D建模学习工作室整理翻译,转载请注明出处!

上一篇:Unity3D :面板设置属性参考 (mvrlink.com)

下一篇:Unity3D :运行时 UI 的性能注意事项 (mvrlink.com)

NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号