4.与多个用户共享对象运动

本教程介绍如何共享对象的运动,使共享体验的所有参与者可以展开协作并查看彼此的交互。

目标

  • 配置项目以共享对象的运动
  • 了解如何生成基本的多用户协作应用

准备场景

在本部分,你将通过添加教程预制件来准备场景。

在“层次结构”窗口中,展开“MixedRealityPlayspace”对象并选择“主照相机”子对象,然后在“检查器”窗口中,使用“添加组件”按钮将“AR 照相机管理器(脚本)”组件添加到“主照相机”对象

Unity with AR Camera Manager component partially configured

在“项目”窗口中,导航到“资产”>“MRTK.Tutorials.MultiUserCapabilities”>“预制件”文件夹,然后将“TableAnchor”预制件拖动到“层次结构”窗口中“SharedPlayground”对象上,以将其作为 SharedPlayground 对象的子项添加到场景

Unity with newly added TableAnchor prefab selected

在“层次结构”窗口中,确保“MixedRealityPlayspace”对象已展开,且已选择“TableAnchor”对象。 将“主照相机”组件拖入 TableAnchor 的“AR 会话源”组件的“照相机”字段

Unity with the AR Session Origin Main Camera assignment configured

配置 PUN 以将对象实例化

在本部分,你将配置项目以使用在入门教程中创建的“探测车浏览器”体验,并定义在哪里将其实例化。

在“项目”窗口中,导航到“资产”>“MRTK.Tutorials.MultiUserCapabilities”>“资源”文件夹。

在“层次结构”窗口中,展开“NetworkLobby”对象并选择“NetworkRoom”子对象,然后在“检查器”窗口中,找到“Photon 房间(脚本)”组件,并按如下所示对其进行配置:

  • 向“探测车浏览器预制件”字段分配来自“资源”文件夹的“RoverExplorer_Complete_Variant”预制件

Unity with Photon Room component partially configured

在“NetworkRoom”子对象仍处于选中状态的情况下,在“层次结构”窗口中展开“TableAnchor”对象,然后在“检查器”窗口中,找到“Photon 房间(脚本)”组件,并按如下所示对其进行配置:

  • 向“探测车浏览器位置”字段中分配来自“层次结构”窗口的“TableAnchor”>“Table”子对象

Unity with Photon Room component configured

尝试带有共享对象移动的体验

如果现在生成了 Unity 项目并将其部署到 HoloLens,然后返回到 Unity,并且在应用运行于 HoloLens 上时按“玩游戏”按钮以进入“游戏”模式,那么,当你在 HoloLens 中移动对象时,你将看到对象在 Unity 中移动:

Animation showing Unity with networked objects

祝贺

你已成功将项目配置为同步对象移动,因此用户可以在其他用户移动对象时看到对象移动。 这将确保用户在实际的物理位置能够互相看得见。 它还将确保对象在所有用户的物理位置和旋转中都出现。 如果你想要了解如何以物理方式对齐现在同步的移动,请参阅“使用 Azure 空间定位点创建新的 HoloLens Unity 应用”教程。

在这个多用户功能教程系列中,你学习了如何设置 Photon 帐户、创建 PUN 应用、将 PUN 集成到 Unity 项目中,以及如何配置用户头像和共享的对象。 本教程是该系列的最后一个教程。