Windows Mixed Reality让用户能够看到全息影像,就像在物理和数字世界中一样。 HoloLens 和附加沉浸式头戴显示设备配件的桌面电脑的核心是Windows 10设备。 你可以在应用商店中以 2D 应用的形式运行几乎所有通用 Windows 平台 (UWP) 应用。
为混合现实创建 2D UWP 应用
将 2D 应用引入混合现实头戴显示设备的第一步是让应用在桌面监视器上作为标准 2D 应用运行。
生成新的 2D UWP 应用
若要为混合现实生成新的 2D 应用,请生成标准的 2D 通用 Windows 平台 (UWP) 应用。 无需进行其他应用更改,该应用即可在混合现实中作为石板运行。
若要开始构建 2D UWP 应用,检查创建第一个应用一文。
将现有 2D 应用商店应用引入 UWP
如果应用商店中已有 2D Windows 应用,请确保它面向Windows 10 通用 Windows 平台 (UWP) 。 以下是你目前使用应用商店应用的所有潜在起点:
| 起点 | AppX 清单平台目标 | 如何使此通用? |
|---|---|---|
| Windows Phone (Silverlight) | Silverlight 应用清单 | 迁移到 WinRT |
| Windows Phone 8.1 通用版 | 8.1 不包括平台目标的 AppX 清单 | 将应用迁移到通用 Windows 平台 |
| Windows 应用商店 8 | 8 不包括平台目标的 AppX 清单 | 将应用迁移到通用 Windows 平台 |
| Windows 应用商店 8.1 通用版 | 8.1 不包括平台目标的 AppX 清单 | 将应用迁移到通用 Windows 平台 |
如果你现在在电脑、Mac & Linux 独立生成目标上生成了一个 2D Unity 应用,请切换到混合现实的 通用 Windows 平台 生成目标。
我们将讨论如何使用 下面的 Windows.Holographic 设备系列将你的应用专门限制为 HoloLens。
在Windows Mixed Reality沉浸式头戴显示设备中运行 2D 应用
如果你已将 2D 应用部署到台式计算机并在显示器上试用,则可以在沉浸式桌面头戴显示设备上试用它!
只需转到混合现实头戴显示设备中的“开始”菜单,并从那里启动应用即可。 桌面 shell 和全息 shell 都共享同一组 UWP 应用,因此从 Visual Studio 部署后,应用应已存在。
面向沉浸式头戴显示设备和 HoloLens
恭喜! 你的应用现在使用 Windows 10 通用 Windows 平台 (UWP) 。
你的应用现在能够在当今的 Windows 设备(如桌面、移动、Xbox、Windows Mixed Reality沉浸式头戴显示设备、HoloLens 和未来的 Windows 设备)上运行。 但是,若要实际面向所有这些设备,需要确保应用面向 Windows。 通用设备系列。
将设备系列更改为 Windows.Universal
现在,让我们跳转到 AppX 清单,以确保Windows 10 UWP 应用可以在 HoloLens 上运行:
- 使用 Visual Studio 打开应用的解决方案文件并导航到应用包清单
- 右键单击解决方案中的 Package.appxmanifest 文件,然后转到 “查看代码”
- 确保目标平台为 Windows。 依赖项部分中的通用
<Dependencies> <TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.10240.0" MaxVersionTested="10.0.10586.0" /> </Dependencies> - 救!
如果不将 Visual Studio 用于开发环境,则可以在所选的文本编辑器中打开 AppXManifest.xml ,以确保面向 Windows.UniversalTargetDeviceFamily。
在 HoloLens 模拟器中运行
现在,UWP 应用面向“Windows.Universal”,让我们生成应用并在 HoloLens 模拟器中运行它。
请确保 已安装 HoloLens 仿真器。
在 Visual Studio 中,选择应用的 x86 生成配置
在部署目标下拉菜单中选择 “HoloLens 模拟器 ”
选择“ 调试 > ”“开始调试” 以部署应用并开始调试。
仿真器将启动并运行应用。
使用键盘、鼠标和 Xbox 控制器,将应用置于世界中以启动它。
后续步骤
此时,可能会出现以下两种情况之一:
- 应用将显示其初始状态,并在将其置于仿真器中后开始运行! 好极了!
- 或者,当你看到 2D 全息影像的加载动画后,加载将停止,你只会在初始屏幕中看到你的应用。 这意味着出现问题,需要进一步调查才能了解如何在混合现实中实现应用。
你需要进行调试才能了解阻止 UWP 应用在 HoloLens 上启动的可能问题的根源。
在调试器中运行 UWP 应用
这些步骤将引导你使用 Visual Studio 调试器调试 UWP 应用。
- 如果尚未这样做,请在 Visual Studio 中打开解决方案。 将目标更改为 HoloLens 模拟器 ,将生成配置更改为 x86。
- 选择“ 调试 > ”“开始调试” 以部署应用并开始调试。
- 使用鼠标、键盘或 Xbox 控制器将应用放置在世界中。
- Visual Studio 现在应该会在应用代码中的某个位置中断。
- 如果应用由于未经处理的错误而未立即崩溃或中断调试器,请通过应用核心功能的测试阶段,确保一切正常运行。 你可能会看到如下所示的错误 (正在) 处理的内部异常。 若要确保不会错过影响应用体验的内部错误,请运行自动测试和单元测试,以确保一切按预期运行。
更新 UI
现在,你的 UWP 应用在沉浸式头戴显示设备和 HoloLens 上作为 2D 全息影像运行,接下来我们将确保它看起来很漂亮。 以下是应考虑的一些事项:
- Windows Mixed Reality将以固定分辨率和 DPI 运行所有 2D 应用,相当于 853x480 有效像素。 考虑你的设计是否需要在此规模上进行优化,并查看以下设计指南,以改善你在 HoloLens 和沉浸式头戴显示设备上的体验。
- Windows Mixed Reality不支持 2D 动态磁贴。 如果核心功能在动态磁贴上显示信息,请考虑将该信息移回应用或浏览 3D 应用启动器。
2D 应用视图分辨率和比例因子
Windows 10将所有视觉设计从真实屏幕像素移动到有效像素。 这意味着,开发人员按照针对有效像素的Windows 10人机界面指南设计其 UI,Windows 缩放可确保这些有效像素的大小适合跨设备、分辨率、DPI 等提供可用性。 有关详细信息 ,请参阅 MSDN 上的此优秀阅读 。
即使具有将应用放置在某个距离范围内的独特功能,也建议使用类似电视的观看距离,以产生最佳的可读性和与凝视/手势的交互。 因此,混合现实主页中的虚拟平板电脑将在以下位置显示你的平面 UWP 视图:
1280x720、150%DPI (853x480 有效像素)
此分辨率有几个优点:
- 这种有效的像素布局与平板电脑或小型台式机的信息密度大致相同。
- 它匹配 Xbox One 上运行的 UWP 应用的固定 DPI 和有效像素,实现跨设备的无缝体验。
- 当跨全球应用的作距离范围缩放时,此大小看起来不错。
2D 应用视图界面设计最佳做法
应做:
- 按照Windows 10人机界面指南 (HIG) ,了解样式、字号和按钮大小。 HoloLens 将执行相关工作,以确保你的应用具有兼容的应用模式、可读文本大小和适当的命中目标大小。
- 确保 UI 遵循 响应式设计的 最佳做法,以最佳方式查看 HoloLens 的独特分辨率和 DPI。
- 使用 Windows 中的“浅色”主题建议。
不应做:
- 在混合现实中更改 UI 时,过于剧烈,以确保用户在头戴显示设备中和头戴显示设备外都有熟悉的体验。
了解应用模型
混合现实的应用模型旨在使用 混合现实 主页,其中许多应用位于一起。 将此视为与桌面等效的混合现实,可在其中同时运行多个 2D 应用。 这会影响应用生命周期、磁贴和应用的其他关键功能。
应用栏和后退按钮
2D 视图在其内容上方使用应用栏进行修饰。 应用栏具有两个特定于应用的个性化点:
标题:显示与应用实例关联的磁贴的显示名称
后退按钮: 按下时引发 BackRequested 事件。 后退按钮可见性由 SystemNavigationManager.AppViewBackButtonVisibility 控制。
2D 应用视图中的应用栏 UI
测试 2D 应用的设计
请务必测试应用,以确保文本可读、按钮可定向,并且整个应用看起来正确。 可以在桌面头戴显示设备、HoloLens、仿真器或分辨率设置为 1280x720 @150% 的触摸设备上 进行测试 。
新的输入可能性
HoloLens 使用高级深度传感器来查看世界和查看用户。 这可实现高级手势,例如 开花 和 空击。 功能强大的麦克风还可以实现 语音体验。
借助桌面头戴显示设备,用户可以使用运动控制器指向应用并采取措施。 他们还可以使用游戏板,通过视线瞄准对象。
Windows 负责处理 UWP 应用的所有这些复杂性,将 凝视、手势、语音和运动控制器输入转换为抽象出输入机制的 指针事件 。 例如,用户可能已用手隔空敲击或拉动运动控制器上的 Select 触发器,但 2D 应用程序不需要知道输入来自何处 - 他们只需看到 2D 触摸按下,就像在触摸屏上一样。
下面是将 UWP 应用引入 HoloLens 时应了解的输入的高级概念/方案:
- 凝视 变成悬停事件,这些事件可能会意外触发菜单、浮出控件或其他用户界面元素,只需凝视你的应用即可弹出。
- 凝视不如鼠标输入精确。 使用适当大小的 HoloLens 命中目标,类似于触摸友好的移动应用程序。 应用边缘附近的小元素尤其难以与之交互。
- 用户必须切换输入模式才能从滚动到拖动到双指平移。 如果你的应用设计用于触摸输入,请考虑确保两个手指平移后没有锁定主要功能。 如果是这样,请考虑使用替代输入机制,例如可以开始两根手指平移的按钮。 例如,“地图”应用可以使用两根手指平移进行缩放,但有一个加号、减号和旋转按钮,以通过单击来模拟相同的缩放交互。
语音输入 是混合现实体验的关键部分。 我们已启用所有语音 API,这些 API 在使用头戴显示设备时Windows 10为 Cortana 提供支持。
发布和维护通用应用
应用启动并运行后,打包应用以 将其提交到 Microsoft 应用商店。