【问题标题】:How can I configure MRTK to work with touch input in editor and on mobile devices?如何配置 MRTK 以在编辑器和移动设备上使用触摸输入?
【发布时间】:2019-11-12 18:13:55
【问题描述】:

我正在构建一个可在 HoloLens 和移动设备 (iOS/Android) 上运行的应用程序。我希望能够在所有设备上使用相同的操作处理程序来实现目标:

  1. 使用 ARFoundation 进行移动设备跟踪和输入
  2. 在 MRTK 中使用带有 ManipulationHandler 的触摸输入,否则按正常方式使用触摸输入 (UI)
  3. 在编辑器中模拟触摸输入(使用触摸屏或鼠标),但保留用于相机定位的键盘/鼠标控制器。

到目前为止,我已经尝试/找到了:

  1. MixedRealityPlayspace 始终是相机的父项,因此我将 ARSessionOrigin 添加到该组件,并将所有默认 AR 组件添加到相机(ARCameraManager、TrackedPoseDriver、ARRayCastManager 等)
  2. 自定义 MRTK 指针配置文件以仅计数 MousePointer 和 TouchPointer。
  3. 删除多余的输入数据提供者。
  4. 在 InputSimulationService 中禁用手部模拟

一般来说,将 ARSessionOrigin 添加到 MixedRealityPlayspace 的方法按预期工作,并且 ARFoundation 的设置很简单。但是,我很难理解如何让 ManipulationHandler 响应触摸输入。

我遇到了以下问题:

  1. 用手指在触摸屏上拖动可移动相机(编辑器)。禁用 InputSimulationService 可以解决此问题,但是我无法移动相机...
  2. 即使禁用了相机,单击和拖动也不会影响 ManipulationHandler。
  3. 调试光线绘制在正确的方向,但默认的触摸指针光线绘制在奇怪的位置。 I've attached a .gif explaining this. 这是在编辑器中使用触摸输入。在设备 (Android) 上运行时观察到相同的效果。

这也适用于 Unity UI(世界空间画布),点击 UI 元素不会触发(在设备上或在编辑器中),这表明这是一个指针问题而不是处理程序问题。

我希望得到一些关于如何在编辑器和设备上正确配置触摸输入和鼠标输入的建议,目标是使用投影矩阵从屏幕点投射光线以创建指针,并使用双指触摸方式与使用两条手线相同。

【问题讨论】:

标签: mrtk


【解决方案1】:

在手机上与世界空间中的 Unity UI 交互本应在 MRTK 中工作,但输入系统中存在一些阻止其工作的错误。该问题在此处跟踪:https://github.com/microsoft/MixedRealityToolkit-Unity/issues/5390

尚未签入修复程序,但您现在可以应用解决方法(很大程度上要感谢您自己所做的工作,newske!)。解决方法已发布在问题中。请参阅https://gist.github.com/julenka/ccb662c2cf2655627c95ffc708cf5a69。只需将 MRTK 中的每个文件替换为 gist 中的版本即可。

【讨论】:

    猜你喜欢
    • 2020-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-22
    • 2012-11-16
    • 1970-01-01
    • 2016-06-25
    • 1970-01-01
    相关资源
    最近更新 更多