用例 — 利用 Photon 的 Unity 网络
更新时间: 2024年9月11日
为 Meta Quest 创建多玩家游戏应用时,您需要实施一个网络解决方案,以处理共享用户体验中的网络流量路由。
选择网络解决方案时,根据应用的需求进行选择非常重要。MMO 风格游戏的网络架构和结构与小型 4 人游戏应用的网络需求大不相同。
对于此使用案例分析,您将了解 SharedSpaces 示例应用如何将 Netcode for GameObjects 与 Photon Realtime 传输配合使用。此示例应用最多需要四个用户同时玩游戏的体验,因此 Photon 是理想的选择。
在 SharedSpaces 示例中,Photon 网络解决方案使用了房间的概念,将用户分组到同一个比赛或大厅。每个创建的 Photon 房间都有唯一的名称,该名称直接从 MatchSessionID 字符串或 LobbySessionsID 字符串中提取。Photon 网络层会追踪房间中最早的成员,并将其标记为“主客户端”。
主客户端充当 Photon 房间的主要对等点,可接受尝试加入的其他玩家的连接。
在以下示例中,名字旁边带星号的用户被指定为主客户端,并成为 Photon 房间的主要对等点。
当主客户端离开 Photon 房间时,会发生主持人迁移,系统将选择新的主客户端。通常将选择具有次低角色编号(玩家加入房间时分配给他们的数字或编号)的用户。有关 SharedSpaces 展示应用如何处理主持人迁移的示例,请查看 oculus-samples Github 存储库中的
SharedSpacesNetworkLayers.cs。
首先,使用自己的 Photon 账户配置 NetDriver。如果您没有 Photon 账户,请按照以下步骤操作:
- 访问 photonengine.com 并创建用户账户。
- 导航到 Photon 面板,然后点击 Create a New App(创建新应用)。
- 在 Photon SDK 下拉菜单中,选择 Realtime。
- 根据需要填写其余字段,然后点击 Create(创建)。
接下来,存储所创建应用的应用编号。新创建的 Photon Realtime 应用将显示在 Photon 面板上,您可以在此找到并复制应用编号字符串。
注意:复制 Photon 应用编号并将其安全存储在某个位置。
接下来,将应用编号粘贴到 PhotonAppSettings.asset 文件中。为此,导航到 Assets(素材)> Photon > Fusion > Resources(资源),然后选择 PhotonAppSettings.asset。

将应用编号粘贴到
App Id Realtime(应用编号 Realtime)、
App Id Chat(应用编号聊天)和
App Id Voice(应用编号语音)字段。
创建应用并将其连接到 Meta Horizon 开发者中心后,您必须将 Unity 应用(此用例中为 SharedSpaces 示例)连接到 Photon 应用编号。
将 Unity 应用连接到 Meta Horizon 开发者中心的应用编号后,将预先打包的网络解决方案连接到 Unity 编辑器中之前创建的 Photon 应用编号。
按照以下步骤操作:
- 从项目文件夹,导航到 Assets(素材)> Photon > Fusion > Resources(资源),然后选择
PhotonAppSettings.asset 文件。 - 在检查器中,复制 Photon 应用编号,并将其粘贴到 App Id Realtime(应用编号 Realtime)、App Id Chat(应用编号聊天)和 App Id Voice(应用编号语音)字段。

- 完成后,保存 Unity 项目。
完成 SharedSpaces 示例应用的设置后,可以邀请玩家进入创建的 Photon 房间,并与其他玩家及应用进行互动。Photon 网络层负责处理应用体验中玩家的通信。