更新适用于 Windows Mixed Reality 的 2D UWP 应用
用户可以使用 Windows Mixed Reality 查看全息影像,就像在物理世界和数字世界中身临其境一样。 将沉浸式头戴显示设备附件连接到的 HoloLens 和桌面电脑本质上是 Windows 10 设备。 可以将 Store 中几乎所有的通用 Windows 平台 (UWP) 应用作为 2D 应用运行。
创建适用于混合现实的 2D UWP 应用
将 2D 应用引入混合现实头戴显示设备的第一步是使该应用在桌面监视器上作为标准 2D 应用运行。
生成新的 2D UWP 应用
若要生成适用于混合现实的新 2D 应用,请生成标准的 2D 通用 Windows 平台 (UWP) 应用。 无需进行其他应用更改,该应用即可在混合现实中作为磁板运行。
若要开始生成 2D UWP 应用,请查看创建第一个应用一文。
将现有的 2D Store 应用引入 UWP
如果你已将某个 2D Windows 应用添加到 Store,请确保它面向 Windows 10 通用 Windows 平台 (UWP)。 下面是 Store 应用目前可能提供的所有潜在起点:
起点 | AppX 清单平台目标 | 如何变得通用? |
---|---|---|
Windows Phone (Silverlight) | Silverlight 应用清单 | 迁移到 WinRT |
Windows Phone 8.1 通用 | 不包括平台目标的 8.1 AppX 清单 | 将应用迁移到通用 Windows 平台 |
Windows Store 8 | 不包括平台目标的 8 AppX 清单 | 将应用迁移到通用 Windows 平台 |
Windows Store 8.1 通用 | 不包括平台目标的 8.1 AppX 清单 | 将应用迁移到通用 Windows 平台 |
如果在“PC、Mac 和 Linux 单机”生成目标上已将 2D Unity 应用生成为 Win32 应用,请切换到混合现实的“通用 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 节中的 Universal
<Dependencies> <TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.10240.0" MaxVersionTested="10.0.10586.0" /> </Dependencies>
- 保存!
如果不将 Visual Studio 用于开发环境,则可以在所选的文本编辑器中打开AppXManifest.xml,以确保以 Windows.Universal TargetDeviceFamily 为目标。
在 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 应用作为 2D 全息影像在沉浸式头戴显示设备和 HoloLens 上运行,接下来我们将确保它看起来美观。 以下是一些需要考虑的事项:
- Windows Mixed Reality 将按固定分辨率和 DPI(相当于 853x480 有效像素)运行所有 2D 应用。 考虑设计是否需要按此缩放比例进行优化,并查看下面的设计指导以改进 HoloLens 和沉浸式头戴显示设备体验。
- Windows Mixed Reality 不支持 2D 动态磁贴。 如果核心功能显示有关动态磁贴的信息,请考虑将该信息移回应用或浏览 3D 应用启动器。
2D 应用视图分辨率和缩放系数
Windows 10 将所有可视化设计从实际屏幕像素转换为有效像素。 这意味着,开发人员按照有效像素的 Windows 10 人机接口准则设计 UI,Windows 缩放可确保这些有效像素是跨设备、分辨率、DPI 等实现可用性的合适大小。 有关详细信息,请参阅 MSDN 上的这篇佳作和这段 BUILD 演示。
即使你具有将应用置于世界的多种距离中的特殊能力,也建议使用类似电视的观看距离来获得最佳观看体验,并使用视线/手势进行交互。 因此,混合现实主页中的虚拟磁板将按以下方式显示平面 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 应用的设计
请务必测试应用以确保文本是可读的,按钮是可定向的,并且整个应用看起来正确。 可以在将分辨率设置为 1280x720 @150% 的桌面头戴显示设备、HoloLens、仿真器或触摸设备上进行测试。
新的输入可能性
HoloLens 使用高级深度传感器来查看世界和查看用户。 这将启用高级手势,例如开花手势和隔空敲击。 功能强大的麦克风还支持语音体验。
使用桌面头戴显示设备,用户可以使用运动控制器指向应用并采取措施。 他们还可以使用游戏手柄,将对象作为凝视目标。
Windows 负责处理 UWP 应用的所有这些复杂性,将视线、手势、语音和运动控制器输入转换为抽象出输入机制的指针事件。 例如,用户可能已用手进行隔空敲击,或在运动控制器上拉取了“选择”触发器,但 2D 应用程序不需要知道输入来自何处 - 他们只需看到 2D 触摸按下,就像在触摸屏上操作一样。
下面是在将 UWP 应用引入 HoloLens 时应了解的有关输入的概要性概念/方案:
- 视线会变为悬停事件,只需在应用周围视线,这些事件即可意外触发菜单、浮出控件或其他用户界面元素弹出。
- 视线不如鼠标输入精确。 将大小适当的命中目标用于 HoloLens,类似于兼容触摸功能的移动应用程序。 靠近应用边缘的小元素特别难以交互。
- 用户必须将输入模式从滚动切换为拖到双指平移。 如果应用专为触摸输入而设计,请考虑确保没有主要功能锁定在双指平移后面。 如果是这样,请考虑使用备用输入机制,例如可以启动双指平移的按钮。 例如,地图应用可以使用双指平移进行缩放,但具有加号、减号和旋转按钮,以通过单击来模拟相同的缩放交互。
语音输入是混合现实体验的关键部分。 使用头戴显示设备时,我们已启用位于支持 Cortana 的 Windows 10 中的所有语音 API。
发布和维护通用应用
应用启动并运行后,打包应用以将其提交到 Microsoft Store。