文档

支持

Cloud Code

设置 Cloud Code

Set up Cloud Code scripts or modules to use with the Triggers service.
阅读时间3 分钟最后更新于 3 个月前

要使用 Triggers 服务,您应该定义一个 Cloud Code 脚本或 Cloud Code 模块。
Cloud Code C# 模块
使用类型安全 (type-safe) 的编程语言和功能强大的 .NET 组件编写服务器端代码。使用 NuGet 等工具捆绑动态链接库 (DLL),获取项目中需要的其他内容。开始使用 Cloud Code C# 模块。
Cloud Code JavaScript 脚本
使用易于迭代的语言编写服务器端代码。如果您拥有 JavaScript 前端经验,可以利用相同的生态系统。通过 Cloud Code 命令行已支持的 CommonJS 和 ECMAScript 模块系统,将您的代码与可重用的代码段捆绑在一起。开始使用 Cloud Code JavaScript 脚本。
此脚本或模块会在触发器触发时执行,但前提是您定义了触发器配置。

执行返回值

目前,Triggers 服务不会处理来自 Cloud Code 的任何返回值。请通过创建直接执行游戏逻辑的模块和脚本来解决这个问题。

上下文属性

由于 Triggers 服务由服务帐户进行身份验证,因此在执行期间,某些属性在脚本的
context
对象和模块的
IExecutionContext
接口中不可用。
由于缺少玩家身份验证,以下属性不可用:
  • playerId
  • accessToken
  • unityInstallationId
  • analyticsUserId
  • correlationId
确保您的脚本和模块不依赖于这些属性。
注意
注意: 您仍然可以使用
serviceToken
进行身份验证。这种情况下,您可以调用其他 UGS 服务(例如 Lobby 服务)来获取玩家数据。

跨玩家数据

要使用 Cloud Code 修改跨玩家数据,您需要使用
serviceToken
进行身份验证并调用其他 UGS 服务。
在编写 Cloud Code 逻辑时,您无法从 context 对象中获取玩家 ID。但是,当触发器与从 UGS 发出的事件配对时,您通常可以从事件有效负载中获取玩家 ID,并处理玩家数据。如需详细了解支持的事件及其有效负载,请参阅支持的 UGS 事件 您还可以调用其他 Unity Gaming Services(Unity 游戏服务)来获取玩家数据。例如,您可以通过在脚本或模块中调用 Leaderboards 或 Lobby 服务,从这些服务中获取玩家。 请参阅使用示例:用游戏内货币奖励排名靠前的玩家以查看示例。

有效负载参数

您可以使用一组参数来调用 Cloud Code 模块和脚本。这些参数在事件的有效负载中定义。计划性事件的有效负载由用户在计划配置中定义。对于 UGS 事件,请参阅支持的 UGS 事件,了解事件有效负载的内容。 这些参数的定义方式应与任何其他脚本或模块的参数定义方式相同。 触发事件的有效负载用作 Cloud Code 调用的参数集;与事件负载中的键匹配的所有已定义参数都会填充。所有事件有效负载都会自动包括
projectId
environmentId
correlationId
例如,如果以下脚本有一个字符串参数
name

JavaScript

module.exports = async ({ params, context, logger }) => { return "Hello " + params.name;};
或者以下模块中的函数
SayHello
有一个字符串参数
name
using Unity.Services.CloudCode.Core;namespace ExampleModule;public class MyModule{ [CloudCodeFunction("SayHello")] public string Hello(string name) { return $"Hello, {name}!"; }}
则可以按如下方式定义计划配置的有效负载:
{ "name": "hello-world-test", "eventName": "hello-world-test", "type": "one-time", "schedule": "2023-08-28T15:20:00Z", "payloadVersion": 1, "payload": "{\"name\": \"World\"}"}
当触发器触发时,会在填充有效负载参数的情况下执行 Cloud Code 脚本或模块。
注意
注意: 有限制。请参阅限制以获取更多信息。