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

    输入系统

    在MRTK提供的所有功能中,输入系统是最大的系统之一。工具包中的许多内容都建立在它之上(指针pointers,焦点focus,预制体prefabs)。输入系统中的代码允许自然交互,例如跨平台抓取和旋转。

    输入系统具有一些自己的术语,值得定义:

    • Data providers(数据提供者)

      输入配置文件中的输入设置引用了称为数据提供者(data providers)的实体-另一个描述这些实体的词是设备管理器。这些组件的工作是通过与特定的底层系统接入来扩展MRTK输入系统。provider的一个示例是Windows Mixed Reality provider,它的工作是与基础Windows Mixed Reality API进行对话,然后将这些API中的数据转换为下面的MRTK特定的输入概念。另一个示例是OpenVR provider(其工作是与Unity抽象的OpenVR API版本进行通信,然后将数据转换为MRTK输入概念)。

    • Controller(控制器)

      物理控制器的表示形式(无论是6自由度控制器,带手势支持的HoloLens 1型手,全关节手,跳跃运动控制器等)。控制器由设备管理器(device manager)生成(例如,WMR设备管理器会在看到全关节手出现时,生成一个控制器并管理其寿命)。

    • Pointer(指针)

      控制器使用指针与游戏对象进行交互。例如,近距离交互指针负责检测手(它是控制器)何时靠近那些支持“近距离交互”的对象。指示器的其他示例是远距传递或远距指针(即手部射线指针),它们使用远射线投射来与长出用户的手臂的内容进行交互。

      指针由设备管理器创建,然后附加到输入源。要获取控制器的所有指针,请执行:controller.InputSource.Pointers

      请注意,控制器可以同时与许多不同的指针相关联–为了确保不会陷入混乱,有一个指针调解器(pointer mediator)可以控制允许激活哪些指针(例如,调解器将当检测到近距离交互时,禁用远距离交互指针)。

    • Focus(焦点)

      指针事件发送到焦点对象。焦点的选择因指示器类型而异-手部射线指示器将使用射线,而食指的戳动指示器将使用球形投射。对象必须实现IMixedRealityFocusHandler才能获得焦点。可以全局注册一个对象以接收未过滤的指针事件,但是不建议使用此方法。

      更新焦点对象的组件是FocusProvider

    • Cursor(光标)

      与指针关联的实体,在指针交互时提供额外的视觉提示。例如,FingerCursor会在您的手指周围呈现一个圆环,并且当您的手指靠近“近处可交互”的对象时可以旋转该环。一个指针可以同时与一个光标关联。

    • Interaction and Manipulation(交互与操作)

      可以使用交互或操作脚本标记对象。这可以通过Interactable, 或类似于 NearInteractionGrabbable/ManipulationHandler.

      例如,NearInteractionGrabbable和NearInteractionTouchable允许某些指针(尤其是近处交互的指针)知道哪些对象可以成为焦点。

      Interactable和ManipulationHandler是侦听指针事件以修改UI视觉效果或移动/缩放/旋转游戏对象的组件的示例。

    下图捕获了MRTK输入栈的高级构建(从下至上):

    Input System Diagram

    • Improve this Doc
    Back to top Generated by DocFX