文档

支持

Cloud Code

触发器结构

Understand the structure of a trigger configuration that defines what to invoke when an event fires.
阅读时间3 分钟最后更新于 1 个月前

触发器配置可以定义触发事件时应调用的内容。 可能如下所示:
{ "name" : "example-trigger", "eventType" : "com.unity.services.{{SERVICE_NAME}}.{{EVENT_NAME}}.v{{EVENT_VERSION}}", "actionUrn" : "urn:ugs:cloud-code:{{SCRIPT}}", "actionType" : "cloud-code", "filter": "data['parameter'] == 'value'"}
  • name
    :触发器的名称。对于每个项目,此名称必须具有唯一性。
  • eventType
    :用于将触发器与事件匹配。由
    eventName
    eventVersion
    字段组成,这两个字段分别对应于事件配置中的
    eventName
    payloadVersion
    字段。
  • actionUrn
    :定义触发器触发时应调用的内容。例如,
    urn:ugs:cloud-code:TestScript
    调用
    TestScript
    Cloud Code 脚本,或者
    urn:ugs:cloud-code:TestModule/TestFunction
    调用
    TestModule
    Cloud Code 模块中的
    TestFunction
    函数。
  • actionType
    :触发器触发时要执行的操作的类型。目前仅支持
    cloud-code
  • filter
    :可选字段,定义触发器触发所必须满足的条件。如果条件不满足,触发器就不会触发。如需了解更多信息,请参阅过滤器

与事件重叠

触发器与事件相关联。触发事件时将调用关联的触发器。事件和触发器必须共享相同的
eventName
payloadVersion
配置。

计划性事件

假设计划配置如下:
{ "name" : "recurring-schedule", "eventName": "example-event", "type": "recurring", "schedule": "0 0 * * *", "payloadVersion": 1, "payload": "{\"someBoolean\": true, \"someString\": \"something\"}"}
触发器配置如下:
{ "name" : "example-trigger", "eventType" : "com.unity.services.scheduler.example-event.v1", "actionUrn" : "urn:ugs:cloud-code:my-script", "actionType" : "cloud-code"}
通过将触发器配置中的
eventType
字段设置为计划配置中的
eventName
payloadVersion
字段,可以将触发器与事件类型相关联。
部署计划配置后,在指定时间会触发计划,向 Triggers 服务发送一个事件,进而调用关联的 Cloud Code 资源。

UGS 事件

假设您希望将触发器与 UGS 中的事件类型相关联,您需要在触发器配置中指定事件类型。 例如,如果您希望在发生 Authentication:注册事件时触发一个触发器,您可以创建以下触发器配置:
{ "name" : "example-trigger", "eventType" : "com.unity.services.player-auth.signed-up.v1", "actionUrn" : "urn:ugs:cloud-code:my-script", "actionType" : "cloud-code"}
每次用户注册时,都会触发此触发器,从而调用
my-script
Cloud Code 脚本。

每个触发器对应多个事件

您可以将同一事件与多个触发器关联。 例如,您可以创建两个在用户注册时调用的触发器。 第一个触发器调用
add-cloud-save-data
脚本为经过身份验证的用户添加 Cloud Save 数据条目:
{ "name" : "auth-cloud-save", "eventType" : "com.unity.services.player-auth.signed-up.v1", "actionUrn" : "urn:ugs:cloud-code:add-cloud-save-data", "actionType" : "cloud-code"}
第二个触发器从
Economy
模块调用
add-economy-items
终端,向经过身份验证的用户添加虚拟物品:
{ "name" : "auth-economy", "eventType" : "com.unity.services.player-auth.signed-up.v1", "actionUrn" : "urn:ugs:cloud-code:Economy/add-economy-items", "actionType" : "cloud-code"}
每次有用户注册时,两个触发器都会被触发并调用相关的 Cloud Code 资源。