返回开发者新闻

构建多人 VR 体验:使用 Unity 设置专属 SharedSpaces 示例

2022年6月14日发布者:Navyata Bawa

打造多人游戏 VR 体验博客和视频专题系列共四部分,在这个系列中,我们将探索使用 Unity 制作的开源 SharedSpaces 示例,讨论开放平台 SDK 中与 Quest 多人游戏功能相关的内容,并介绍如何使用此示例构建自己的多人游戏应用。这是第 2 部分。如果错过第 1 部分,您可以阅读此处的博文,并观看此处的视频

如果您有兴趣观看或收听此专题内容,请前往 Meta 开源项目 YouTube 频道查看本视频

在今天的博文中,我们将讨论使用 Unity 设置专属 SharedSpaces 示例的步骤。我们将探讨如何从 GitHub 上克隆库,如何在 Unity 中进行设置,并将其部署到您的头戴设备。

获取代码

包含 Unity SharedSpaces 示例代码的库位于 oculus-samples GitHub 中。

如 README 文件所述,请运行以下命令确保已经安装了 Git LFS:

git lfs install

您可以运行以下命令来克隆库:

git clone https://github.com/oculus-samples/Unity-SharedSpaces.git

如果尚未安装,请在计算机上安装 Oculus 桌面应用,以确保所有必要的 SDK 均可用。您可通过前往 Meta Quest 官网,安装该应用。设置 Oculus 桌面应用时,当询问窗口弹出时,请允许将 Oculus 设置为默认的 OpenXR 运行时。接下来,我们来看看 Quest 的设置。

设置 Quest

新建应用

第一步是在 Oculus 官网上新建一个应用,以便关联新应用与 Unity SharedSpaces 示例。为此,请访问 Oculus 开发者中心官网,点击右上角的“My Apps”(我的应用),为您的项目新建一个应用。

在 Oculus 开发者控制面板上,如果上面没有任何组织,请为您的项目新建一个组织,如下图所示。

创建好组织后,点击右上角的“Create New App”(新建应用)按钮,新建一个应用。

新建应用时,请选择应用名称和适宜的分发平台。在本例中,我们将创建一个发布到 App Lab 的 Quest 应用。

举例而言,您可以将应用命名为 Unity Shared Spaces。

创建好应用后,点击左侧导航栏的“API”,可查看该应用的更多详情。请您注意留意 AppID,以便在 Unity 中正确设置应用。

设置应用的位置

要为应用设置 SharedSpaces 位置,请点击左侧导航窗口中的“Platform Services”(平台服务),然后点击中央窗口“Destinations”(位置)框中的“Add Service”(添加服务)。

要创建位置,您需要添加提及每个位置的 API 名称和深度链接消息的设置,如下表所示。然后,点击“Destinations”(位置)页面右上角的“Create Destination”(创建 Destination)按钮。

在“New Destination”(新 Destination)页面,添加第一个 API“Lobby”的数据,然后点击“Submit for Review”(提交审核)按钮。您需要为下表中的每个 API 执行此操作。

对于 SharedSpaces 示例,“Deeplink Type”(Deeplink 类型)必须设置为“Enabled”(已启用),“Audience”(受众)必须设置为“Everyone”(所有人)。

此步骤也可参见 Github 库中 README.md 文件中的 Destinations 部分。

API 名称

深度链接消息

显示名

描述

Lobby

{"is_lobby":"true","map":"Lobby"}

Lobby

Lobby

RedRoom

{"map":"RedRoom"}

RedRoom

RedRoom

GreenRoom

{"map":"GreenRoom"}

GreenRoom

GreenRoom

BlueRoom

{"map":"BlueRoom"}

BlueRoom

BlueRoom

PurpleRoom

{"map":"PurpleRoom","public_room_name":"ThePurpleRoom"}

PurpleRoom

PurpleRoom

以下是成功添加 API 后的 Destinations(位置)页面:

页面设置完毕后,点击“Back to App Dashboard”(返回应用控制面板)执行下一步。

为应用设置“数据使用情况检查”

下一步是为应用设置“数据使用情况检查”。“数据使用情况检查”主要用于证明您遵守了 Oculus 开发者政策,并保护用户数据。接下来,点击控制面板上的“Data Use Checkup”(数据使用情况检查)。您需要请求访问 SharedSpaces 所需的开放平台数据。在“Data Use Checkup”(数据使用情况检查)页面添加以下项目并提交认证:

  • 用户编号
  • 用户个人主页
  • 深度链接
  • 好友
  • 邀请

对于所添加的各个项目,请选择最能体现使用情况的选项。该提示的示例如下所示。更多有关“数据使用情况检查”的信息,请参阅此文档

下表显示了在为本演示案例设置“数据使用情况检查”时可以选择的用途选项示例。在描述您会如何在应用中使用该项目时,请具体说明用例情况。每个项目的用例可能因应用而异。本演示中将始终采用通用性描述。

项目

用途

描述

用户编号

  • 使用位置、组队状态和应用深度链接
  • 在 Photon/Playfab 上运行多人游戏
  • 使用 P2P 对等网络
  • 使用房间
  • 查看 Oculus 帐号
  • 展示待邀请好友
  • 允许用户邀请他人
  • 使用语音聊天 (VoIP)

为“数据使用情况检查”设置用户编号的用途,以便测试 Unity Shared Spaces

用户个人主页

  • 使用位置、组队状态和应用深度链接
  • 在 Photon/Playfab 上运行多人游戏
  • 使用 P2P 对等网络
  • 使用房间
  • 查看 Oculus 帐号
  • 展示待邀请好友
  • 允许用户邀请他人
  • 使用语音聊天 (VoIP)

为“数据使用情况检查”设置用户个人主页的用途,以便测试 Unity Shared Spaces

深度链接

  • 使用位置、组队状态和应用深度链接
  • 允许用户邀请他人

为“数据使用情况检查”设置深度链接的用途,以便测试 Unity Shared Spaces

好友

  • 在 Photon/Playfab 上运行多人游戏
  • 使用房间
  • 展示待邀请好友

为“数据使用情况检查”设置好友的用途,以便测试 Unity Shared Spaces

邀请

  • 在 Photon/Playfab 上运行多人游戏
  • 使用房间
  • 展示待邀请好友
  • 允许用户邀请他人

为“数据使用情况检查”设置邀请的用途,以便测试 Unity Shared Spaces

提交后,系统会要求您提供隐私政策 URL。(如果您为这个项目创建了分支,则可以添加隐私政策 markdown 文件并进行链接。)提供隐私政策 URL 后,所请求的开放平台功能将显示为“approved”(已批准),如下图所示。

设置 Photon

接下来您需要用自己的 Photon 帐户设置 NetDriver。Photon 的基本套餐是免费的,足以支持您创建和运行此演示项目。访问 Photon 官网并创建帐户。创建帐户后,点击 Photon 控制面板上的“Create A New App”(新建应用)。填表时,请确保将“Photon Type”(Photon 类型)设置为“Realtime”。接下来,点击“Create”(创建)按钮。

应用创建完毕后,点击“App ID”(应用编号),显示完整的 App ID。在 Unity 项目中设置 Photon 时需要用到应用编号信息。

设置 Unity

设置 Unity 项目

现在我们已在 Oculus 开发者控制面板和 Photon 中将项目设置就绪,您可以在 Unity 中打开从 GitHub 克隆的项目。如果您的 Unity 版本与项目使用的版本不同,它可能会发出警告,要求您更新版本和相关包。请点击“继续”以开始更新,它将重新生成依赖项并打开项目。

项目成功启动后,请确保已安装适用于 Unity 的 Oculus XR 插件。这是为 Meta Quest 设备构建应用的必要条件。要安装插件,请在 Unity 编辑器窗口打开项目包管理器。搜索 Oculus XR Plugin 插件。如果它还不是项目的一部分,请点击“Install”(安装)。

现在,打开名为“Startup”的主场景。要执行此操作,请点击 Assets(素材)→ SharedSpaces → Scenes(场景)→ Startup。

当场景尝试加载时,它可能会警告您缺少名为 TMP 或 TextMesh Pro 的项目包,如下所示。导入项目包以继续。

在 Unity 项目中设置 Oculus 应用

下一步是在资源中设置应用编号,以便关联此项目与您在 Oculus 中创建的新项目。要进行此设置,请前往 Assets(素材)→ Resources(资源)→ OculusPlatformSettings(Oculus 开放平台设置),添加应用编号,如下图所示。您可以在开发者控制面板中的 API 版块找到应用的对应应用编号。

在 Unity 项目中设置 Photon

复制您在 Photon 中创建的 Photon 应用的 App ID,粘贴到 Photon 应用编号字段。为此,请在新建的 Photon 项目中将应用编号复制到 Assets(素材)→ Photon→ Resources(资源)下面的 PhotonAppSettings(Photon 应用设置)。使用在 Photon 创建的应用编号填充 App ID Realtime、App ID Chat 和 App ID Voice,如下图所示。

恭喜!您已经完成了 Unity SharedSpaces 项目的所有设置。我们现在已经进入了最后一个阶段。接下来,看看如何在 Quest 中构建和运行项目。

构建项目

由于会在 Quest 中构建应用,您可以将目标构建平台更新为 Android。要执行此操作,请从编辑器左上角的主菜单依次点击 File(文件)→ Build Settings(构建设置)。在可用平台中选择 Android,如下图所示。

同时,还需确保在 Oculus 设置下面更新 Android Manifest 文件。要执行此操作,请在编辑器上方菜单依次点击 Oculus → Tools(工具)→ UpdateAndroidManifest.xml。更新 Android Manifest 文件非常有必要,这将确保 Manifest 文件中正确包含任何缺少的属性。

此外,您还需要将软件包名称更新为最适合应用的唯一名称。您可以依次点击 Assets(素材)→ Resources(资源)→ OculusPlatformSettings(Oculus 开放平台设置)→ Build Settings(构建设置),然后在 Bundle Identifier(软件包标识符)中完成操作。

点击“Build”(构建),请确认您已设置密钥库,平台已设置为 Android。Unity 将创建一个用于上传并在头戴设备运行的 APK 文件。

运行应用

您可以通过 Oculus Developer Hub (ODH) 并使用从 Unity 项目构建中创建的 APK 来运行应用。ODH 是我们必不可少的桌面配套工具,它简化了 Meta Quest 开发工作(点击此处下载)。

安装 ODH 后,打开 ODH。然后使用您登录 Quest 头戴设备所用的同一 Oculus 开发者帐户登录。转到 Device Manager(设备管理器)选项卡,找到您的头戴设备。确保头戴设备已通电并通过 USB-C 连接到电脑。如需了解更多信息,请参阅启用设备以进行开发将头戴设备连接到 ODH 这两个页面。如果您之前没有完成所述步骤,则可能需要启用开发者模式并允许 USB 调试。

您可以在 ODH 中上传 APK。依次点击 App Distribution(应用发行版本)选项卡 → 选择 SharedSpaces 项目的应用 → 选择版本通道(建议选 Alpha)→ 点击 Upload(上传)。

此外,您还应确保将自己以及其他任何人添加为“用户”,请在开发者控制面板中依次点击 App Manager(应用管理工具)→ Distribution(发行版本)→ Release Channels(版本通道),完成操作。版本通道中列出的所有用户都可以访问该应用。该应用现在会显示在他们的库中,并允许安装。

现在,您可以使用头戴设备运行自己的 Unity SharedSpaces 示例。在 ODH 中,点击“App Distribution(应用发行版本)选项卡 → 您的 SharedSpaces 项目 → 您选择的版本通道 → ‘三个点’图标”下面的“Install build on device”(在设备上安装编译版本)。这将在您的头戴设备中安装应用。

启动应用后,您将在 LOBBY 中看到您的角色。您还可以看到调试日志、邀请面板和花名册。您既是服务器,也是房间的主人。这将由帐号上方的箭头表示。您可以通过邀请面板邀请好友或同事加入,或者查看花名册面板,了解已加入人员的详细信息。

本文介绍的是详细步骤演练,用于创建专属 Unity SharedSpaces 示例应用,包括克隆库、构建应用,以及在头戴设备运行应用的具体操作。在我们的下一篇博客中,您将学习如何在刚刚创建的 SharedSpaces 示例应用之上构建简单的多人 VR 游戏。我们将介绍网络层、自定义角色的步骤以及如何邀请好友。

请务必查看打造多人游戏 VR 体验系列中的上一篇博文,进一步了解其他多人游戏功能、您可以使用这些功能构建哪些应用,以及如何使用 SharedSpaces 示例入门:

打造多人游戏 VR 体验:开放平台 SDK 和 Unity SharedSpaces 示例


本系列简介

本系列将探索使用 Unity 制作的开源 SharedSpaces 示例,讨论开放平台 SDK 中与 Quest 多人游戏功能相关的内容。为“打造多人游戏 VR 体验”系列视频提供支持的系列博客共四部分,本博客是第一部分。

如需了解有关开放平台 SDK 多人游戏功能以及 SharedSpaces 示例运行原理的更多信息,请参阅此Connect 环节,其中介绍了如何为 Quest 构建和开发多人游戏应用。要试用 Unity SharedSpaces 示例,请访问 App Lab,并在自己的头戴设备上运行此示例。如需了解有关如何在自己的应用中使用开放平台 SDK 多人游戏功能的更多信息,请参阅有关多人游戏功能的文档。

如需了解有关 Meta Quest 的更多信息,请访问我们的网站、订阅我们的 YouTube 频道,或在 TwitterFacebook 上关注我们。如果您有任何问题、建议或反馈,请在开发者论坛中告诉我们。

如需了解有关 Meta Open Source 的更多信息,请访问我们的 Open Source 网站、订阅我们的 YouTube 频道,或在 TwitterFacebook 上关注我们。