认识Fluent Design后,开发者如何把这些设计元素应用到场景实现中呢?微软的设计团队为大家提供了快速的集成的选项,即开源项目MR Design Labs。
MR Design Labs是一套丰富的Unity prefab组件,主要分为5类:
- 可交互对象(Interactable Object)
- 应用栏和边框盒(App Bar & Bounding Box)
- 对象集合(Object Collection)
- 提示框(Dialog)
- 进度组件(Progress)
可交互对象(Interactable Object)
可交互对象对于混合现实场景而言,用户具有很多种输入方式,包括手势Gesture、视线Gaze、语音Voice、手柄和键盘鼠标等,如此多的输入方式需要我们能够对支持处理他们。可交互对象组件就为我们提供了对所有输入设备的统一处理,开发者不必自己花费大量经历自己实现。开发者基于此类组件可以实现从普通按钮、灯光高亮按钮再到具有动画响应的按钮或对象,提供良好的交互体验。
应用栏和边框盒(App Bar & Bounding Box)
应用栏和边框盒对于2D场景而言,很少会直接对3D内容进行缩放拖拽处理,但这在混合现实场景中是很常见的操作。因此,MR Design Labs直接为开发者提供了一套标准的操作组件,可快速的为全息物体集成标准缩放控制行为的实现。
对象集合(Object Collection)
对象集合排列UI元素同样是场景的内容展现形式,对于2D屏幕而言,因为只是平面排列,并无太多挑战。但是对于在3D空间展开的混合现实内容而言,对象集合的排列则具有更丰富的形式。MR Design Labs中提供了四类常见的集合排列方式,包括平面排列、柱状排列、球形排列以及散列集合。柱状排列可以充分利用用户左右视角,球形排列可以充分利用上下左右360度的视野空间,散列集合则适合在空间中展示丰富的离散信息。
提示框(Dialog)
提示框对于开发者而言,同样是非常熟悉的UI元素了,它总是呈现在2D内容的最顶层。但是对于全息场景而言,我们无法让提示框呈现在人眼最顶层,因为视锥最近距离的限制。因此,这类组件在项目中也做了封装,开发者直接使用即可获得空间定位良好能够跟随视野移动的标准提示框,避免自己再去实现的挑战。
进度组件(Progress)
进度组件类似于对话框组件,进度条同样是常用的UI元素,面临类似。因此,项目同样对它进行了封装,它可以在真实世界中良好的定位,而且可以选择进度条和动画的不同类型,非常的实用。