【HoloLens2】官方教程“Multi-user capabilities tutorials“ 学习记录第 4 部分

根据HoloLens官方教程的中文翻译和实施操作捕获撰写记录。

本文使用Unity 2019.3.15 & 部署到安卓和HoloLens

效果:PC端、安卓、IOS、HoloLens成功连接


在本教程中,您将学习如何共享对象的运动,以便共享体验的所有参与者都可以协作并查看彼此的交互。


目标

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

1. 准备场景

在本节中,您将通过添加教程预制件来准备场景。

在“项目”窗口中,导航到“资源” >“ MRTK.Tutorials.MultiUserCapabilities” >“ Prefabs”文件夹,并将TableAnchor预制件拖动到“层次结构”窗口中的SharedPlayground对象上,以将其作为SharedPlayground对象的子代添加到场景中:
在这里插入图片描述

2. 配置PUN以实例化对象

在本节中,您将配置项目以使用在入门教程中创建的Rover Explorer体验,并定义实例化的位置。

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

在“层次结构”窗口中,展开“ NetworkLobby”对象,然后选择“ NetworkRoom”子对象,然后在“检查器”窗口中,找到“光子室(脚本)”组件并按以下方式进行配置:

在“ Rover Explorer预制”字段中,从“资源”文件夹中分配RoverExplorer_Complete_Variant预制
在这里插入图片描述
在仍然选择NetworkRoom子对象的情况下,在 Hierarchy 窗口中,展开TableAnchor对象,然后在 Inspector 窗口中,找到**Photon Room (Script)**组件并将其配置如下:

Rover Explorer Location字段中,从 Hierarchy 窗口中分配TableAnchor> Table子对象。

在这里插入图片描述

3. 尝试共享对象移动的体验

如果现在您将Unity项目构建并部署到HoloLens中,然后返回Unity,则在应用程序在HoloLens上运行时按Play按钮进入游戏模式,当您移动对象时,您将看到对象在Unity中移动在HoloLens中:

在这里插入图片描述

将Azure Spatial定位器集成到共享的体验中

在本教程中,您将学习如何将Azure Spatial Anchors(ASA)集成到共享体验中。ASA允许多个设备具有对物理世界的共同引用,从而使用户可以在其实际物理位置看到彼此,并在同一地点看到共享的体验。

目标

将ASA集成到共享体验中以进行多设备校准
了解本地共享经验的背景下ASA工作原理

1. 准备场景

基于前几步做的内容

在 Hierarchy 窗口中,展开SharedPlayground对象,然后展开TableAnchor对象以显示其子对象:

在这里插入图片描述
在“项目”窗口中,导航到“资产” > MRTK.Tutorials.MultiUserCapabilities >“预制”文件夹,并将“按钮”预制拖到TableAnchor子对象上,以将其作为TableAnchor对象的子对象添加到场景中:
在这里插入图片描述

2. 配置按钮以操作场景

在本节中,您将配置一系列按钮事件,这些事件说明了如何使用Azure Spatial Anchors在共享体验中实现空间对齐的基础。

在“层次结构”窗口中,展开Button对象,然后选择第一个名为StartAzureSession的子按钮对象:

在 Inspector 窗口, 找到 Interactable (Script) 组件并按如下方式配置 OnClick() 事件:

  • None (Object) 区域, 分配 TableAnchor object
  • No Function 下拉列表中, 选择AnchorModuleScript > StartAzureSession () 函数

在 Hierarchy 窗口中,选择第二个名为CreateAzureAnchor的子按钮对象,然后在 Inspector 窗口中,找到 Interactable (Script) 组件并按如下方式配置OnClick() 事件:

  • None (Object) 字段中,分配TableAnchor对象
  • No Function下拉列表中,选择AnchorModuleScript > CreateAzureAnchor() 函数
  • 对出现的新的 None (Game Object) 字段,分配TableAnchor对象

在 Hierarchy 窗口中,选择名为ShareAzureAnchor的第三个子按钮对象,然后在 Inspector 窗口中,找到 Interactable (Script) 组件并按如下方式配置OnClick() 事件:

  • None (Object) 字段中,分配TableAnchor对象
  • No Function下拉列表中,选择SharingModuleScript > ShareAzureAnchor() 函数

在 Hierarchy 窗口中,选择名为GetAzureAnchor的第四个子按钮对象,然后在 Inspector 窗口中,找到 Interactable (Script) 组件并按如下方式配置OnClick() 事件:

  • None (Object) 字段中,分配TableAnchor对象
  • No Function下拉列表中,选择SharingModuleScript > GetAzureAnchor() 函数

3. 将场景连接到Azure资源

在 Hierarchy 窗口中,展开SharedPlayground对象,然后选择TableAnchor对象。

在 Inspector 窗口中,找到 Spatial Anchor Manager (Script) 组件,:

  • Spatial Anchors Account ID字段中,从您的Azure Spatial Anchors帐户粘贴帐户ID。
  • Spatial Anchors Account Key字段中,从您的Azure空间定位器帐户粘贴主或辅助访问密钥

提示
可以在整个项目中进行设置,而不是在场景中设置“空间定位帐户”和“密钥”,如果您使用ASA时有多个场景,则可以设置为优势。为此,请在“项目”窗口中,导航到“资产”>“ AzureSpatialAnchors.SDK”>“资源”>“ SpatialAnchorConfig”资产,然后在“检查器”窗口中设置值。

在 Hierarchy 窗口中,选择 TableAnchor对象,然后在 Inspector 窗口中,找到**Anchor Module (Script) **组件并按以下方式进行配置:

  • 在**Public Sharing Pin **字段中,更改几位数字,这样pin将成为您的项目所独有的

在仍然选择TableAnchor对象的情况下,在Inspector 窗口中,确保所有脚本组件均已启用:

  • 选中Spatial Anchor Manager (Script) 组件旁边的复选框以启用它
  • 选中 Anchor Module Script (Script) 组件旁边的复选框以启用它
  • 选中 Sharing Module Script (Script) 组件旁边的复选框以启用它

4. 尝试空间对齐的体验

注意
Azure空间锚无法在Unity中运行。因此,要测试Azure Spatial Anchors功能,您需要将项目部署到最少两个设备。

如果现在将Unity项目生成并部署到两个设备,则可以通过共享Azure锚点ID在设备之间实现空间对齐。要对其进行测试,可以按照以下步骤操作:

  1. 在设备1上:启动应用程序(实例化Rover Explorer,并将其放置在桌子上)
  2. 在设备2上:启动应用程序(两个用户都可以使用Rover Explorer查看该表,但是该表不会出现在同一位置,并且用户头像也不会出现在用户所在的位置)
  3. 在设备1上:按“启动Azure会话”按钮
  4. 在设备1上:按下“创建Azure锚点”按钮(在TableAnchor对象的位置创建锚点并将锚点信息存储在Azure资源中)。
  5. 在设备1上:按“共享Azure锚点”按钮(与其他用户实时共享锚点ID)
  6. 在设备2上:按“启动Azure会话”按钮
  7. 在设备2上:按下“获取Azure锚点”按钮(连接到Azure资源以获取共享锚点ID的锚点信息,然后将TableAnchor对象移动到使用设备1创建锚点的位置)
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值