CloudScript 基础知识
充分利用 CloudScript 的关键在于知道如何使用可用的输入 – 即处理程序的 args 和 context。 例如,这是入门 CloudScript 中的helloWorld 示例,在所有新创建的游戏中作为版本 1 加载(也可在我们的 GitHub 中获得,如下所示)。
inputValue 传入的参数,并使用该键的值作为执行的调试日志信息中返回的文本的一部分。
上下文输入参数
但是,也可以由 PlayStream 中的事件调用 CloudScript,通过规则 (Automation->Rules)、分段进入/退出操作 (Players->Segments) 或任务服务 (Automation->Tasks)。 当你这样做时,传递给函数的上下文提供了执行适当操作所需的所有信息。 要阅读 PlayStream 事件如何工作的基础知识,请参阅我们的博客 Introducing PlayStream,有关 PlayStream 事件类型及其属性的列表,请参阅我们的 PlayFab API 参考。 要查看此操作,请查看同一示例 CloudScript 中的handlePlayStreamEventAndProfile 处理程序。
-
有
playStreamEvent,你可以在上面的示例代码中看到。playStreamEvent包含触发处理程序的完整事件作为 JSON 对象,具有你在 PlayStream 事件文档 中看到的所有参数。例如,如果你在游戏中设置了一个规则,对任何player_logged_in event调用handlePlayStreamEventAndProfile,则playStreamEvent.EventName将为player_logged_in等等(这里是该事件的完整参数集)。 -
接下来是
playerProfile,也在前面的示例中显示。它包含有关触发事件的玩家的信息。你可以在此处找到配置文件参数的所有详细信息,但除其他外,它包含你游戏中玩家的完整统计信息集,以及你分配给玩家的任何自定义标记,以便你可以使用该数据进行丰富的决策。 -
上下文的最后一个元素是
triggeredByTask。与前两个不同(前两个在使用规则和分段进入/退出触发器时设置),triggeredByTask仅在处理程序作为任务的结果(无论是手动还是定时)运行时才适用。它只包含两个参数:
- Name – 你在创建任务时为其指定的唯一名称。
- ID – PlayFab 为你的任务自动生成的唯一标识符。
playerProfile,但不会有 playStreamEvent。
对于一个仅针对你的游戏运行但 没有 任何分段的任务,将不会有 playerProfile,因为其意图是运行更通用的东西,比如为事件设置一些游戏数据。
因此 name 是你在处理程序的代码流中要使用的元素,以确定要采取的适当操作。
PlayStream 加 CloudScript
在许多方面,由 PlayStream 操作触发的 CloudScript 处理程序具有比通过直接调用ExecuteCloudScript 触发的处理程序更多的潜在功能,因为通过上下文提供了丰富的数据集。
这使你能够在发布后使用 更多 逻辑来更新处理程序,这些逻辑利用了你最初没有预料到的事件或玩家配置文件的元素,无需 以任何方式更新你的客户端代码。
此外,我们将在 PlayFab 服务的未来更新中继续对玩家配置文件进行添加,这将为服务器端逻辑提供 更多 选项。