设置 Cloud Code
Set up Cloud Code scripts or modules to use with the Triggers service.
阅读时间3 分钟最后更新于 4 个月前
要使用 Triggers 服务,您应该定义一个 Cloud Code 脚本或 Cloud Code 模块。
此脚本或模块会在触发器触发时执行,但前提是您定义了触发器配置。
执行返回值
目前,Triggers 服务不会处理来自 Cloud Code 的任何返回值。请通过创建直接执行游戏逻辑的模块和脚本来解决这个问题。
上下文属性
由于 Triggers 服务由服务帐户进行身份验证,因此在执行期间,某些属性在脚本的 对象和模块的 接口中不可用。
contextIExecutionContext由于缺少玩家身份验证,以下属性不可用:
playerIdaccessTokenunityInstallationIdanalyticsUserIdcorrelationId
确保您的脚本和模块不依赖于这些属性。
跨玩家数据
要使用 Cloud Code 修改跨玩家数据,您需要使用 进行身份验证并调用其他 UGS 服务。
serviceToken在编写 Cloud Code 逻辑时,您无法从 context 对象中获取玩家 ID。但是,当触发器与从 UGS 发出的事件配对时,您通常可以从事件有效负载中获取玩家 ID,并处理玩家数据。如需详细了解支持的事件及其有效负载,请参阅支持的 UGS 事件。
您还可以调用其他 Unity Gaming Services(Unity 游戏服务)来获取玩家数据。例如,您可以通过在脚本或模块中调用 Leaderboards 或 Lobby 服务,从这些服务中获取玩家。
请参阅使用示例:用游戏内货币奖励排名靠前的玩家以查看示例。
有效负载参数
您可以使用一组参数来调用 Cloud Code 模块和脚本。这些参数在事件的有效负载中定义。计划性事件的有效负载由用户在计划配置中定义。对于 UGS 事件,请参阅支持的 UGS 事件,了解事件有效负载的内容。
这些参数的定义方式应与任何其他脚本或模块的参数定义方式相同。
触发事件的有效负载用作 Cloud Code 调用的参数集;与事件负载中的键匹配的所有已定义参数都会填充。所有事件有效负载都会自动包括 、 和 。
projectIdenvironmentIdcorrelationId例如,如果以下脚本有一个字符串参数 :
nameJavaScript
module.exports = async ({ params, context, logger }) => { return "Hello " + params.name;};
或者以下模块中的函数 有一个字符串参数 :
SayHellonameusing 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 脚本或模块。