Photon Bolt

本指南将帮助您为使用 Photon Bolt 作为网络解决方案的 Unity 项目在 Edgegap 上创建无头服务器。

在本指南中,我们将使用一个自定义演示项目作为示例。

准备 Unity 项目

克隆 Unity 项目

第一步是从 git 克隆 Edgegap 演示游戏项目。您可以在命令提示符中使用以下命令执行此操作:

该命令将创建一个包含 Unity 源项目的文件夹,名为 demo-game.

过程完成后,您可以打开 Unity Hub 并通过按下 添加 按钮(在“项目”选项卡中)然后在计算机上找到项目文件夹:

要打开项目,您需要安装正确版本的 Unity。在我们的示例中,我们将使用 Unity 2020.3.3。您可以访问 Unity 的下载归档以查找该版本:https://unity3d.com/get-unity/download/archive。

安装完成后,您现在可以通过 Unity Hub 中项目名称旁的下拉菜单选择新的 Unity 版本:

现在您可以打开 Unity 项目以继续下一步。

设置游戏

设置 Photon Bolt

添加 Photon 应用 ID 并编译 Bolt

为了让游戏与 Photon 的服务通信,您需要在 Photon 仪表板中添加一个应用。如果您还没有 Photon 帐户,可以在他们的 网站arrow-up-right.

登录后,您可以创建一个应用并为其命名。每个应用都有其唯一的 应用 ID。您需要将此 ID 复制并粘贴到 Unity 项目中的 Bolt 设置 窗口:

输入 ID 后,您可以关闭 Bolt 设置窗口。在同一个 Bolt 菜单中,您需要执行两个操作: 更新预制件数据库编译程序集,分别执行。

此时,您应该能够在调试控制台中无错误或警告地启动游戏的 StartScene 场景。然而,您仍然不能在服务器上开始游戏。

这就完成了使 Photon Bolt 工作所需的一般更改。这些更改将同时适用于您游戏的客户端和服务器。

准备无头服务器

为了让您的应用能高效地与容器一起工作,您需要对游戏进行一些更改以创建“无头服务器”构建。对于大多数项目,这只需要几个简单的步骤。

Unity 项目的要求

首先,需要注意的是,Photon Bolt 的无头服务器模式需要加载包含名为 HeadlessServerManager.

的脚本的场景。

return null;

通常,该脚本会由空场景中的一个空 GameObject 持有(该场景仅用于无头服务器构建)。 为适应本演示,脚本已略作修改以符合项目结构,目前它位于一个空 GameObject 中,场景位于.

Assets/Scenes/BoltHeadlessServer

向游戏添加无头服务器检查 上述脚本包含一个名为IsHeadlessMode

的静态实用方法,用于检查正在运行的游戏是否为无头模式。如果您正在更新现有项目,您可能希望添加此检查以为无头服务器移除或添加某些功能,例如防止实例化玩家角色。

构建设置 构建设置 在项目的 BoltHeadlessServer

场景放在最顶部,这样服务器加载时它会是第一个被加载的场景。 Linux 接下来,选择 作为目标平台并勾选.

服务器构建

现在您可以使用上述设置在 Linux 下构建您的游戏。 对于客户端构建 在项目的 ,不要忘记取消选中 场景和 IsServer

选项,以便您的游戏能够正常运行。 有关为 Photon Bolt 制作无头服务器的每一步的更多详细信息,请参阅arrow-up-right.

官方文档

为服务器创建容器 如果您不熟悉 Docker 或容器,可以通过查看了解更多

什么是 Docker? 要从 Unity 项目创建容器,请参考.

Unity 在 Docker 上

将您的应用添加到 Edgegap

现在您可以将容器添加到 Edgegap,以便将其托管在玩家所在的任何位置。 如果您不知道如何将应用添加到 Edgegap,请参考.

集成教程 demo-game 但是,您需要确保您的应用名称为 v1并且它有一个名为 的版本。否则,您需要在位于.

Assets/Scripts/StaginController.cs 的版本。否则,您需要在位于 的脚本中更新这些值。 此外,在脚本中,您会找到一个名为

API_TOKEN

的常量变量。您需要从 Edgegap 帐户创建一个令牌并将其作为字符串粘贴到该变量中。该令牌将用于授权发送到 Edgegap 的 API 请求。

下面是相关脚本,其中 Edgegap 的令牌为蓝色,应用参数为红色: StartScene 运行演示游戏

最后,您可以启动一个演示游戏客户端构建来进行游玩。您可以构建游戏的客户端版本并启动它,或者直接在 Unity 界面中运行。只需确保在

场景上启动即可。 启动后,会弹出一个界面。界面顶部有一个文本字段,两个大按钮,以及屏幕左下角显示 Bolt 当前状态的标签。 您可以将 Edgegap 的 API 令牌复制到顶部的文本字段中。粘贴令牌后,您现在可以按下

请求服务器 按钮以向 Edgegap 发送 API 调用以启动服务器。 几秒钟后,您应该会看到界面底部的标签显示可用服务器的数量。现在按下

最后更新于

这有帮助吗?