我们继续有关Windows Mixed Reality的系列文章,并从头开始开发实验室工作格式的Unity混合现实应用程序。 您自己可以与文章的发布同时创建这样的应用程序。 在这一部分中,我们考虑运动控制器的支持,并将扬声器预制件添加到虚拟客厅。

整个指南将包括5个部分。 它将每周补充一次。 您可以在下面转到所需的部分。
第1部分: 从Unity导出Windows Mixed Reality的UWP应用程序 ;
第2部分: 设置环境(VR) ;
第3部分: 控制器 ;
第4部分: 空间声音 ;
第5部分: HoloLens和图形 。
控制器
在实践课程的此阶段,我们将创建扬声器预制件并将其添加到虚拟客厅。 然后,我们向场景添加运动控制器支持,以便用户可以移动和旋转扬声器。
向房间添加扬声器
- 转到“项目”面板中的“模型”文件夹,并将Speaker3模型拖到“层次结构”面板中,以使该模型成为根对象,而不是场景对象之一的子对象。
- 通过右键单击扬声器并选择重命名来重命名扬声器。 叫他议长。
- 选择场景中的Speaker对象,然后在“检查器”面板中更改以下变换属性:
- 将比例参数设置为(0.02; 0.02; 0.02);
- 将位置参数设置为(2.68; 0.14; 2)。

添加控制器支持
之前,当我们将“混合现实”参数应用于场景时,我们增加了对运动控制器的支持。
让我们记住这些参数如何影响场景中运动控制器的操作。
- 我们添加的MixedRealityCameraParent元素具有一个称为MotionControllers的子对象,并且其中包含MotionControllerVisualizer脚本。 该脚本监视并可视化控制器模型(更改其位置,旋转它并处理输入事件)。
- 我们添加的InputManager对象期望来自各种来源的输入事件。 它的子对象包括鼠标(Mouse),触摸输入(Touch),手势(GesturesInput)和Xbox的对象。 GestureInput对象具有一个InteractionInputSource元素,该元素等待来自InteractionManager的运动控制器事件。 这些是运动控制器事件,将用于控制我们的扬声器。

扬声器控制
为了使用户可以移动和旋转扬声器,应为其添加物理属性-然后我们可以确定视图是针对扬声器的。
- 在“层次结构”面板中选择“扬声器”对象,以在“检查器”面板中更改其属性和行为。
- 在“检查器”面板中,单击“添加组件”,然后找到并选择Box Collider组件。
- 在添加的Box Collider组件中,将Size属性设置为(21,20,53),以使其完全环绕扬声器。
接下来,从“混合现实”工具箱中添加“边界框”行为:
1.在“项目”面板中,导航到Holotoolkit→UX→脚本→BoundingBoxes文件夹(Holotoolkit→UX→脚本→Bounding Boxes),选择BoundingBoxRig.cs脚本并将其拖到Inspector面板中以将其添加到组件中讲者
2.由于我们不需要更改扬声器的比例,因此可以将“比例速率”参数设置为0。
BoundingBoxRig组件将gizmo元素添加到游戏对象(在本例中为扬声器)。 使用Gizmo,用户可以使用运动控制器或HoloLens手势(触摸和操纵)旋转,移动和缩放对象。
3.选择“扬声器”对象后,单击“添加组件”,然后在搜索框中输入“双手可操纵”,然后单击搜索结果中突出显示的脚本。
4.将此组件的“操纵模式”设置为“旋转”,以防止扬声器缩放。
此方案使您可以用两只手来控制对象-使用运动控制器或使用HoloLens中的按住手势。
5.在Project面板中,在Assets→HoloToolkit→UX→Prefabs→BoundingBoxes文件夹中找到BoundingBoxBasic预制件(资源→HoloToolkit→UX→Prefabs→Bounding Boxs)并将其拖到脚本B的Bounding Box Prefab属性中在“扬声器”对象中绑定。
6.还将BoundingBoxBasic预制件拖到“双手可操纵”组件的“边界盒预制”属性上。
预制的BoundingBoxBasic包含在操作过程中呈现的可视元素,因此我们将其添加到每个组件中。

7.在Project面板中,在Assets-> Prefabs文件夹中找到AppBarCustom预制件,并将其拖到扬声器中Bounding Box Rig组件的App Bar Prefab属性中。
我们做了很多改变。 确保“扬声器”游戏对象的“检查器”面板如下所示:

启动应用程序并移动扬声器
保存场景并运行以检查更改。
请尝试以下操作:
- 选择一个扬声器并移动它(应该监视控制器的信号);
- 单击扬声器应用程序面板以访问使您可以旋转扬声器的捕捉。
- 更改扬声器的大小/比例(如果您之前未禁用此功能)。
→
原创作者:埃里克·阿尔斯特罗姆(Eric Ahlstrom),巴克莱姆斯(Cbarkerms),麦迪逊·海特