mrtk_developmentreleases/2.0.0releases/2.1.0releases/2.2.0
  • 指南
  • API 文档
  • 指南
  • 架构
  • 输入系统
  • 核心系统

    Show / Hide Table of Contents
    • MRTK入门
      • 发布说明
      • MRTK包内容
      • 从早期版本更新
      • 从HTK更新
      • 生成和部署MRTK
      • NuGet包
      • MRTK配置对话框
      • 开始使用 MRTK和XR SDK
      • 性能
      • 全息图稳定
      • 在大型项目中使用MRTK
    • 架构
      • 概述
      • 框架和运行时
      • 输入系统
        • 术语
        • 核心系统
        • Controllers, pointers, and focus
      • 系统,扩展服务和 data providers
    • 功能概述
      • 边界系统 Boundary System
        • 边界系统概述
        • 配置边界可视化
      • 相机系统 Camera System
        • 相机系统概述
        • Camera Settings Providers
          • Windows 混合现实相机设置
          • Unity AR相机设置[实验性]
          • 创建camera settings provider
      • 跨平台支持
        • 为iOS和Android配置MRTK
      • 检测平台能力
      • 诊断系统 Diagnostics System
        • 诊断系统概述
        • 配置诊断系统
        • 使用可视化分析器
      • 扩展服务 Extension Services
        • 扩展服务创建向导
        • 场景过渡服务概述
      • 输入系统 Input System
        • 输入概览
        • 输入动作 Input Actions
        • 输入事件 Input Events
        • Input Providers
          • Input Providers 概述
          • 创建一个 input data provider
        • 控制器 Controllers
        • 眼动跟踪 Eyes
          • 概述
          • 入门
          • 通过代码访问数据
          • 验证跟踪校准 Validate Tracking Calibration
        • 凝视 Gaze
        • 手势 Gestures
        • 手部 Hands
        • 如何添加近距离交互 Near Interaction
        • 编辑器内输入模拟 In-Editor Input Simulation
        • 指针 Pointers
        • 语音输入 Voice Input
          • 语音转录 Dictation
          • 语音(命令和控制) Speech
      • 多场景系统 Multi Scene System
        • 多场景系统概述
        • 场景类型 Scene Types
        • 内容场景加载 Content Scene Loading
        • 监测内容加载 Monitoring Content Loading
        • 光照场景操作 Lighting Scene Operations
      • 打包 Packaging
        • MRTK包 MRTK Packages
        • MRTK模块化 MRTK Modularization
      • 配置文件 Profiles
        • 配置文件概述
        • 配置指南 Configuration Guide
      • 渲染 Rendering
        • 材质实例概述 Material Instance Overview
        • Shaders
          • MRTK标准着色器 MRTK Standard Shader
      • 服务 Services
        • 什么是混合现实特性
        • 什么是 MixedRealityServiceRegistry 和IMixedRealityServiceRegistrar
        • 扩展服务 Extension services
      • 空间感知系统 Spatial Awareness System
        • 空间感知概述
        • Spatial Observers
          • 为设备配置 Observers
          • 为Editor配置 Observers
          • 通过代码控制 Observers
          • 创建自定义 Observer
      • 传送系统概述 Teleport System Overview
      • 工具
        • Dependency Window
        • Extension Service Creation Wizard
        • Holographic Remoting
        • Input Animation Recording
          • Input Animation File Format Specification
        • Optimize Window
        • Runtime tools
          • Controller Mapping tool
      • UX 构建模块
        • 工具箱窗口 Toolbox Window
        • 按钮 Button
        • 边界框 Bounding Box
        • 对象操纵器 Object Manipulator
        • Manipulation Handler [废弃]
        • Slate
        • 系统键盘 System Keyboard
        • 可交互的 Interactable
        • Solvers
          • 点击放置 Tap to Place
        • 对象集合 Object Collection
        • 提示工具条 Tooltips
        • 滑动条 Slider
        • 手部菜单 Hand Menu
        • 近处菜单 Near Menu
        • 应用程序栏 App Bar
        • 指尖可视化 Fingertip Visualization
        • 进度指示器 Progress Indicator
        • 对话框 Dialog [实验性]
        • 手势教学 Hand Coach [实验性]
        • 可滚动对象集合 Scrolling Object Collection [实验性]
        • 脉冲着色器 Pulse Shader [实验性]
        • 停靠控件 Dock Control [实验性]
        • HoloLens键盘助手 [实验性]
      • 示例场景
        • 示例中心
        • 手势交互示例场景
        • 眼动跟踪示例场景
    • Contributing
      • Contributing Overview
      • Coding Guidelines
      • Writing and Running Tests
      • Writing Documentation
      • Pull Requests
      • Experimental Features
      • Breaking Changes
      • How to use DocFX
    • Planning
      • Roadmap
    • Notice
    • Authors

    核心系统

    输入系统(input system)的核心是混合现实输入系统,该服务负责初始化和操作与MRTK相关的所有与输入有关的功能。

    Note

    假定读者已经阅读并基本了解术语部分.

    该服务负责:

    • 读取输入系统配置文件
    • 启动配置好的data providers (例如 Windows Mixed Reality Device Manager 和 OpenVR Device Manager).
    • 实例化GazeProvider,该组件除了提供HoloLens2风格的视线凝视信息外,还负责提供HoloLens1风格的视线凝视信息。
    • 实例化FocusProvider,它是负责确定具有焦点的对象的组件。这在指针和焦点文档部分描述。
    • 提供所有输入事件的注册点(例如全局侦听器).
    • 为这些输入事件提供事件分发功能。

    Input events(输入事件)

    输入事件通常在两个不同的通道上触发:

    Objects in focus(焦点对象)

    事件可以直接发送到具有焦点的GameObject。例如,一个对象可能有一个实现IMixedRealityTouchHandler的脚本。当一只手靠近该对象时,该对象将获得触摸事件。这些类型的事件在GameObject层次结构中“上升”,直到找到能够处理该事件的GameObject。

    这是通过在默认输入系统实现中使用ExecuteHierarchy实现。

    全局侦听器

    事件可以发送到全局侦听器(Global listeners)。可以使用输入系统的IMixedRealityEventSystem接口注册所有输入事件。建议使用RegisterHandler方法注册全局事件-已弃用的Register函数将导致侦听器获得所有输入事件的通知,而不仅仅是特定类型的输入事件(其中类型由事件接口定义)。

    注意fallback listeners是不鼓励使用的另一种全局侦听器,因为它们将接收场景中其他地方未处理的每个输入事件。

    Order of event dispatch(事件派发顺序)

    通常,事件以以下方式发送给侦听器。请注意,如果以下任何步骤将事件标记为handled,事件分发过程停止。

    1. 事件发送到全局侦听器。
    2. 事件被发送到焦点对象的模式对话框。
    3. 事件被发送到焦点对象。
    4. 事件发送给后备侦听器(fallback listeners)。

    Device managers and data providers (设备管理器和数据提供者)

    这些实体负责与较低级别的API(例如Windows Mixed Reality API或OpenVR API)进行接口并将来自这些系统的数据转换为符合MRTK的高层输入抽象的数据。他们负责检测,创建和管理控制器的生命周期.

    设备管理器的基本流程包括:

    1. 设备管理器由输入系统服务实例化。
    2. 设备管理器向其底层系统注册(例如,Windows Mixed Reality设备管理器将注册输入 和手势 事件 .
    3. 它创建从底层系统中发现的控制器(例如,provider可以检测到全关节手的存在)
    4. 在其Update() 循环中,调用UpdateControlle() 以轮询底层系统的新状态并更新其控制器表示形式。
    • Improve this Doc
    In This Article
    • Input events(输入事件)
      • Objects in focus(焦点对象)
      • 全局侦听器
      • Order of event dispatch(事件派发顺序)
    • Device managers and data providers (设备管理器和数据提供者)
    Back to top Generated by DocFX