文档

支持

Cloud Code

设置 Cloud Code

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

要使用 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
确保您的脚本和模块不依赖于这些属性。

跨玩家数据

要使用 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 脚本或模块。