模块成本

Cloud Code 有一个免费套餐,因此您可以免费开始开发和使用。仅当您的组织扩展到超出免费套餐或任何适用的信用额度时,您才需要开始付费。

您可以在 UGS 产品定价概述页面上找到更多详细信息和定价常见问题解答。

Cloud Code 与 Unity 服务结合使用

将 Cloud Code 与 Unity 服务结合使用时,您需要为所使用的服务支付费用。例如,如果您从 Cloud Code 调用 Cloud Save 服务,那么对于 Cloud Save 调用和 Cloud Code 调用,都需要付费。

如需了解更多信息,请参阅 Unity 服务定价页面。

使用推送消息

使用 Cloud Code WebSocket 功能将消息推送到客户端时,需要特别注意网络带宽使用量和相关成本。

出口流量成本

从模块发送到客户端的每条消息都会占用网络带宽,这会影响模块的出站数据总量。Cloud Code 会将通过 WebSocket 连接推送消息的相关网络带宽使用量计入到 Cloud Code 出口流量成本中。

在设计应用程序并决定发送消息的时间和频率时,请务必考虑出口流量成本。过多或不必要的大型消息可能会导致更高的出口流量成本。

如需详细了解 Cloud Code 定价,请参阅成本页面。

消息大小限制

Cloud Code 将通过 WebSocket 连接发送的消息大小限制为 10 KB。这意味着您需要管理发送的数据的大小,尤其是对于更复杂或数据密集型的应用程序。

您可以使用以下方法来确保让玩家了解最新情况,并保持较低的成本和网络带宽使用量:

缓解措施使用条件实现方式
发送数据的差异。您需要传送大量数据或游戏状态的重大变化。发送数据的差异而不是整个有效负载。差异是指应用于现有状态的一组更改,通常比完整状态数据小得多。
提示发出 HTTP 请求来获取数据。完整数据集很大且只需要不频繁的更新,或者通过 HTTP 获取数据会更有效或更经济。使用 WebSocket 消息作为微移机制来通知客户端有新数据可用,并提示客户端发出 HTTP 请求以获取完整数据集。

Cloud Code 成本

成本按三个类别计算:

类别描述
调用次数调用次数会统计组织内成功的 Cloud Code 模块函数执行请求数量。成功执行的请求会从模块返回带有 HTTP 200 状态代码的响应。
计算小时数计算小时数是指组织内执行 Cloud Code 模块函数所花费的时间。执行时间还可能包括额外的预热时间。
出口流量出口流量衡量组织内成功执行 Cloud Code 模块函数的响应大小(以 GB 为单位)。成功执行的请求会从模块返回带有 HTTP 200 状态代码的响应。

关于节省成本的提示信息

要降低使用 Cloud Code 的成本,请按照以下提示信息操作:

  • 确保模块函数响应中仅包含您使用的数据。模块函数响应中包含未使用的数据仍会增加出口流量成本。
  • 确保您的 Cloud Code 模块函数在分配的 15 秒超时周期内完成。意外的 while(true) 循环可能会产生意想不到的成本。
  • 考虑是否可以一起批量执行。例如,Cloud Code 模块函数 FuncExampleB 可能依赖于 FuncExampleA 的响应。单独调用这些函数与将两者的逻辑合并到一个模块函数请求中相比,成本可能会增加一倍。

命令批处理

根据命令批处理的概念,每个游戏操作都是一个命令,您可以将命令集合到队列中并批量发送到服务器进行处理。如需了解更多信息,请参阅命令批处理页面。

例如,一个游戏在每个操作后分配奖励:调用 Cloud Save 来分配玩家经验值,调用 Economy 来分配游戏币。玩家完成以下三个操作:

  • 第一个操作会产生 100 经验值和 10 个游戏币。
  • 第二个操作会产生 50 经验值和 5 个游戏币。
  • 第三个操作会产生 200 经验值和 30 个游戏币。

如果独立执行这三个操作,则至少会调用六次各种 Unity 服务(在本例中为 Cloud Save 和 Economy)。但是,您可以将所有这三个操作存储为批处理命令,并通过单个 Cloud Code 模块函数请求来进行处理。这意味着您的游戏只需调用两次 Unity 服务:一次调用 Cloud Save 以增加 350 经验值,另一次调用 Economy 以增加 45 个游戏币。