# Unity Dashboard

> Preview, create, and delete triggers using the graphical interface of the Unity Dashboard.

[Unity Dashboard](https://cloud.unity.com) 提供易于使用的图形界面来全面控制触发器。本节将介绍如何预览、创建和删除触发器。

> **Note:**
>
> **注意**：Unity Dashboard 仅支持基于事件的 UGS 触发器。要创建计划性事件和计划性事件的触发器，可以使用 CLI 或 [Triggers Admin API](./rest-api.md)。

## 预览触发器##preview-triggers

您可以从 Unity Dashboard 访问某个[环境](/services/service-environments.md)的所有触发器的列表：

1. 在 [Unity Dashboard](https://cloud.unity.com) 中，选择 **Cloud Code**。
2. 选择 **Triggers（触发器）**。
3. 从环境列表中选择一个环境。

此时将显示项目所选环境中所有触发器的列表。表中包含名称、触发器、类型和上次更新时间戳。

## 触发器详细信息##trigger-details

您可以从触发器列表中选择一个触发器来导航到触发器详细信息页面。触发器详细信息页面显示以下信息：

| Data                   | 描述                                                                                                                                   |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| **Name**               | 触发器的名称。                                                                                                                              |
| **类型**                 | 触发器的类型：**Event（事件）** 或 **Schedule（计划）**。                                                                                             |
| **Trigger（触发器）**       | 触发脚本的事件。例如，`Cloud Save` 执行 `key_saved`。                                                                                              |
| **Event Type（事件类型）**   | 完整事件类型，例如 `com.unity.services.cloud-save.key-saved.v1`。如需了解有关事件类型的更多信息，请参阅[事件结构](/triggers/manage-events/events.md#event-structure)。 |
| **Last updated（上次更新）** | 上次更新触发器配置的 RFC3339 时间戳。                                                                                                              |

触发器定义卡片上显示了触发器配置的细目：

* when this happens（事件类型）
* where（过滤器）
* do this（操作，可以是 Cloud Code 脚本或模块）

过滤器以芯片形式显示，其中显示过滤器的属性、运算符和值。如果后台无法以芯片形式显示过滤器，后台将以原始 CEL 格式显示过滤器。

### 导航到日志##navigate-to-logs

要导航到触发器的日志页面并查看触发器的执行日志，请选择 **View Trigger Logs（查看触发器日志）** 按钮。请在[日志](/triggers/manage-events/debug-events.md)部分中了解有关日志的更多信息。

### 导航到操作##navigate-to-action

如果触发器与现有脚本或模块相关联，则触发器定义卡片中会提供脚本或模块的链接。要导航到脚本或模块详细信息页面，请选择该链接。

## 创建触发器##create-a-trigger

您可以在 Unity Dashboard 中创建基于事件的触发器。

1. 在 [Unity Dashboard](https://cloud.unity.com) 中，选择 **Products（产品）**> **Cloud Code**。

2. 选择 **Triggers（触发器）**。

3. 选择 **New trigger（新建触发器）**。

4. 填写以下信息：
   * **Name（名称）**：触发器的名称，用于识别配置。触发器名称必须在整个项目和环境中具有唯一性，并且不能超过 255 个字符。
   * **Type（类型）**：触发器的类型。基于事件的触发器是指由 UGS 发出的事件所触发的触发器。

5. 选择 **Next（下一步）**。

6. 在下一步中，选择以下信息：

   * 在 **When this happens（发生此情况时）** 部分中：

     1. 选择 **Add Trigger Event（添加触发事件）** 按钮。
     2. 选择要触发脚本的事件。
     3. 选择 **Add Filter（添加过滤器）** 以向事件添加过滤器。

     > **Note:**
     >
     > **注意**：不需要将字符串值括在引号中。但是，必须将 JSON 类型的值括在引号中。
   * 在 **Do this（执行此操作）** 部分中：

     1. 选择 **Add Action（添加操作）** 下拉选单。
     2. 选择触发器激活时要执行的操作。此操作可以是脚本或模块。

     > **Note:**
     >
     > **注意**：只能选择与触发器位于同一环境中的 Cloud Code 操作。如果您在 **When this happens（发生此情况时）** 部分中选择了 Moderation（审核）事件并想要为您的操作选择脚本，则只能选择一个审核脚本。

7. 选择 **Confirm（确认）**。

触发器创建过程会将您重定向到触发器列表页面。要检查触发器配置，请在表中选择触发器名称。

> **Warning:**
>
> **警告**：如果触发器与发出事件的同一服务进行交互，应该定义一个过滤器以避免无限循环。请参阅 [Unity Dashboard 中的过滤器](#filters-in-the-unity-dashboard)以了解示例。

## Unity Dashboard 中的过滤器##filters-in-the-unity-dashboard

您可以向触发器配置中添加过滤器，以指定触发器激活的条件。Unity Dashboard 支持使用一组有限的过滤器过滤事件有效负载。

请参阅[过滤器](/triggers/tutorials/define-triggers/filters.md)部分以了解过滤器的工作原理。请参阅[支持的 UGS 事件](/triggers/manage-events/supported-ugs-events.md)以检查每个 UGS 事件的事件有效负载。

> **Note:**
>
> **注意**：Unity Dashboard 提供了有限数量的运算符以支持简单的过滤方法。您无法在 Unity Dashboard 中定义类型转换、嵌套表达式和复杂表达式。如果您需要更高级的过滤器，请使用 [Triggers API](../../tutorials/define-triggers/rest-api) 定义您自己的 CEL 表达式。

> **Warning:**
>
> **警告**：如果触发器与发出事件的同一服务进行交互，需要定义一个过滤器以避免无限循环。无限循环会过度处理事件，导致游戏出现意外行为，并最终耗尽项目的 Cloud Code 资源，从而导致服务中断。如果遇到此问题，请删除导致循环的触发器。

### 支持的运算符##supported-operators

Unity Dashboard 根据属性类型显示不同的运算符：

| 运算符                              | 支持的属性类型              |
| -------------------------------- | -------------------- |
| equals to（等于）                    | 所有属性类型               |
| not equals to（不等于）               | 所有属性类型               |
| 大于                               | int、double 和 JSON 类型 |
| greater than or equals to（大于或等于） | int、double 和 JSON 类型 |
| 小于                               | int、double 和 JSON 类型 |
| less than or equals to（小于或等于）    | int、double 和 JSON 类型 |
| matches（匹配）                      | string 和 JSON 类型     |
| not matches（不匹配）                 | string 和 JSON 类型     |
| contains（包含）                     | string 和 JSON 类型     |
| starts with（开头为）                 | string 和 JSON 类型     |
| ends with（结尾为）                   | string 和 JSON 类型     |

> **Note:**
>
> **注意**：JSON 类型指任何 JSON 对象、字符串、数字或布尔值。尽管 JSON 类型支持所有运算符，但您需要对 JSON 对象中的属性类型使用正确的运算符。例如，不能对 JSON 数字使用字符串运算符。

### 联合过滤器##join-filters

最多可以为一个触发器定义 10 个过滤器。您可以通过逻辑运算符 `AND` 和 `OR` 来联合多个过滤器。使用这些运算符可以组合多个过滤器来创建复杂的条件。

> **Note:**
>
> **注意**：Unity Dashboard 不支持嵌套表达式。只能使用逻辑运算符 `AND` 和 `OR` 来联合多个过滤器。如果您需要更高级的过滤器，请使用 [Triggers API](../../tutorials/define-triggers/rest-api) 定义您自己的 CEL 表达式。

### 使用 Cloud Save 保存键事件来定义过滤器##define-filters-with-the-cloud-save-key-saved-event

您可以定义触发器以使其仅在 Cloud Save 中保存特定键时激活。例如，可以定义一个过滤器仅在保存键 `playerData` 时激活触发器。

在 Unity Dashboard 中，可以将此过滤器添加到触发器配置中：

1. 在 **When this happens（发生此情况时）** 部分中，选择 **Add Event（添加事件）** 按钮。
2. 选择事件下拉选单，然后选择 Cloud Save 保存键事件。
3. 选择 **Add Filter（添加过滤器）** 按钮。
4. 在 New Filter（新建过滤器）卡片中：
   1. 在第一个下拉选单中，选择 `key` 属性。
   2. 在第二个下拉选单中，选择 `equals to` 运算符。
   3. 在第三个下拉选单中，输入值 `playerData`。

定义此过滤器意味着，仅当在 Cloud Save 中保存键 `playerData` 时才会激活触发器。

### 使用 Leaderboards 提交分数事件定义过滤器##define-filters-with-the-leaderboards-score-submitted-event

您可以定义触发器以使其仅在将特定分数提交到排行榜时激活。例如，可以定义过滤器仅在分数处于特定范围内时激活触发器。

在 Unity Dashboard 中，可以将此过滤器添加到触发器配置中：

1. 在 **When this happens（发生此情况时）** 部分中，选择 **Add Event（添加事件）** 按钮。
2. 选择事件下拉选单，然后选择 Leaderboards 提交分数事件。
3. 选择 **Add Filter（添加过滤器）** 按钮。
4. 在 New Filter（新建过滤器）卡片中：
   1. 在第一个下拉选单中，选择 `score` 属性。
   2. 在第二个下拉选单中，选择 `greater than` 运算符。
   3. 在第三个下拉选单中，输入值 `0`。
5. 选择 **Add Filter（添加过滤器）** 按钮。
6. 在 New Filter（新建过滤器）卡片中：
   1. 在第一个下拉选单中，选择 `score` 属性。
   2. 在第二个下拉选单中，选择 `less than` 运算符。
   3. 在第三个下拉选单中，输入值 `100`。

定义此过滤器意味着，仅当将 0 到 100 的分数提交到排行榜时才会激活触发器。

## 删除触发器##delete-a-trigger

要从 [Unity Dashboard](https://cloud.unity.com) 中删除触发器，请执行以下操作：

1. 导航到 Triggers（触发器）列表页面。
2. 选择**垃圾桶**图标。随即显示一个对话框，警告您触发器删除操作无法撤消。
   > **Note:**
   >
   > **注意**：如果您删除实时游戏正在使用的触发器，可能会导致游戏中出现意外行为。
3. 选择 **Delete（删除）** 确认删除操作。

或者，可以导航到[触发器详细信息](#trigger-details)页面，然后选择 **Delete（删除）** 按钮来删除触发器。
