操作和规则快速入门
PlayStream 规则允许您实时响应一种类型的 PlayStream 事件的子集。
要求
- Game Manager 快速入门
- 使用玩家统计数据(包含可帮助您学习本教程中示例的信息)。
相关术语一览表:
PlayStream:构成 PlayFab 事件管道的一组功能。
- PlayStream 事件是一个 JSON 格式的字符串,用于描述有关玩家或游戏的事件。
- PlayStream 事件具有基于自动化功能层的最大大小。
规则:执行额外的逻辑,以实时响应某种类型的 PlayStream 事件。
- 事件触发器、可选的条件列表以及可选的操作列表的总和。
触发器:激活此规则的事件的名称。
条件:规则和其他 PlayStream 功能的内容筛选器。
- 对 PlayStream 事件 JSON 对象执行非常轻量级的评估,并跳过与要求不匹配的事件。
操作:要在适当实体上完成的上下文作业。
规则包含触发器(仅一个)、可选的条件列表以及通常至少一个操作(不是必需的,如果没有,则只是一条无用的规则)。
触发器、条件和操作也是其他系统的一部分:批量操作和锦标赛排行榜。
示例案例:从客户端计算自定义事件
在下面给出的示例中,我们从客户端发布以下自定义事件。
public void WriteEvent() {
PlayFabClientAPI.WritePlayerEvent(new WriteClientPlayerEventRequest {
EventName = "ForumPostEvent",
Body = new Dictionary<string, object> {
{ "Subject", "My First Post" },
{ "Body", "My awesome Post." }
}
}, LogSuccess, LogFailure);
}
在本示例中,客户端手动报告自定义 ForumPostEvent
(这当前不对应于 PlayFab 或支持的合作伙伴中的任何自动事件)
我们将使用 PlayStream 规则计算玩家以这种方式报告论坛文章的次数。
要求:游戏必须已经 在发布此类事件,Game Manager GUI 才允许您创建基于其触发的规则。
转到 Game Manager:
- 导航到您的游戏。
- 选择 Automation。
- 转到 Rules。
- 选择 New Rule。
下面,我们逐步评估此示例中的 New Rule:
title.6195.ForumPostEvent
-
6195
是本教程中使用的游戏。 您的 titleId 将与您自己的游戏相匹配。 -
ForumPostEvent
是此示例案例代码中使用的事件名称。 - 仅当您的游戏最近已发布至少一个
ForumPostEvent
时,才可以使用此行。
-
- 本例中使用了最少的 Conditions。
- 但是,它确实 演示了筛选自定义事件的方法(Body 键是否映射到 Body 字典中的 Invalid string)。
- 筛选器是可选的,并且应该从规则中删除不相关的玩家。
- 在本例中,选择的 Actions 将统计计数器递增 1。
- 要求:必须在 Game Manager 的排行榜下定义 Forum Posts 统计数据。
在 Game Manager 的 PlayStream Debugger(如下所示)中,可以看到触发器已生效。
可以看到,自定义的 ForumPostEvent
会自动触发我们在 Actions 下为新规则设置的统计数据。
高级:CloudScript 操作
PlayFab 中的许多内置操作都非常简单,可能无法为您提供所需的全部功能。 这就是我们允许您使用 CloudScript 完全自定义操作逻辑的原因。
下面,编辑 Rule。
- 删除 Condition。
- 将 Action 设置为 Execute CloudScript。
- 选择 Save Action 按钮。
现在,如果我们发布新的 ForumPostEvent,将看到 CloudScript 执行。
编写 CloudScript 以响应 PlayStream 规则是我们的将 CloudScript 操作与 PlayStream 配合使用教程中介绍的一个高级主题。