游戏覆盖和 Settings
Configure Game Overrides and settings in Remote Config.
阅读时间11 分钟最后更新于 1 个月前
Unity Remote Config 使用__游戏覆盖__(之前称为__广告系列__)来定向到特定用户群体并向不同的群体提供不同的设置。游戏覆盖与 Settings 关联。您需将 Settings 映射到游戏代码中的变量,从而在满足游戏覆盖的受众条件时覆盖其默认值。 您可以在设计游戏时或开始新的部署之前提早规划 Remote Config 设置。Unity 建议在初始部署中包含不活跃的 Remote Config 设置,以便您可以稍后在了解受众如何使用您的游戏以及在不同设备上的效果后应用这些设置。 在 Unity 编辑器中,选择 Window(窗口)> Remote Config,打开 Remote Config 窗口即可开始进行 Settings 相关操作。

添加新的 Settings
默认的 Settings Config 配置包含您为给定环境创建的所有 Settings。要创建新的 Settings,请高亮显示 Settings Config 配置,然后单击右侧面板底部的 **Add Setting(添加设置)**按钮。 注意:鉴于游戏代码可以在编辑器中使用 Settings,因此必须在编辑器中创建 Settings。不过,在游戏二进制文件中创建 Settings 后,也可以使用 Remote Config REST API 或 Remote Config Web 控制面板对其进行更新。有关更多信息,请参阅界面。 每个 Settings 都包含 Key、Type 和 Value:参数 | 描述 | 示例 |
|---|---|---|
| Key | Settings 的名称,必须符合以下游戏覆盖的规定:
|
|
| Type | Settings 值的 C# 变量数据类型。受支持的类型包括:
|
|
| Value | 此 Settings 的值,必须符合以下游戏覆盖的规定:
|
|

添加新的游戏覆盖
要创建新的 Remote Config 游戏覆盖,请单击 **Open Dashboard(打开控制面板)**按钮,打开您的 Web 浏览器并跳转到 Remote Config 页面,然后依次单击 **View Overrides(查看覆盖)**按钮和 Create Override(创建覆盖)。每个游戏覆盖均包含五个参数,详见下文:名称
名称是指游戏覆盖的名称。例如,您可以将难度曲线的游戏覆盖命名为level_1_enemieshalloween_event定向策略
定向策略定义游戏覆盖的受众类型。该策略可以是StatefulStatelessCondition条件
条件是上下文数据属性的 JEXL 表达式(请参阅下文的 JEXL 支持部分),用于定义要将游戏覆盖应用到的受众。您可以使用多个标准来定义此细分段。Remote Config 目前支持三个属性类别:-
用户类别包含由开发者定义用于描述用户(例如,订阅状态、姓名、年龄)的自定义属性,您必须将其传递给 RemoteConfigService.Instance.FetchConfigs<T, T2>(T userAttributes, T2 appAttributes)。
**注意:**使用 时,您传递的 ID 会自动作为
SetCustomUserId附加到您的customUserId属性。user - 应用类别包含由开发者定义用于描述应用程序(例如,连接状态、应用程序版本、当前等级)的自定义属性,您必须将其传递给 RemoteConfigService.Instance.FetchConfigs<T, T2>(T userAttributes, T2 appAttributes)。
- unity 类别包含预定义的属性,详见下表:
属性 | 描述 | 示例 |
|---|---|---|
| 应用程序所运行的版本号(在编辑器中,通过转到 Edit(编辑)> Project Settings(项目设置)> **Player(玩家)**来设置此属性)。 | |
| 应用程序所运行的发布版本(在编辑器中,通过转到 Edit(编辑)> Project Settings(项目设置)> **Player(玩家)**来设置此属性)。 | |
| CPU 处理器的名称。 | |
| 运行您的应用程序的设备的处理器频率,以 MHz 为单位。 | |
| 适用的国家/地区。此属性使用 ISO 3166-1 alpha2 国家/地区代码。 有关如何定义自定义属性的信息,请参阅关于代码集成的文档。 | |
| 适用的语言。此属性使用 ISO 639-1 语言代码。 有关如何定义自定义属性的信息,请参阅关于代码集成的文档。 | |
| 运行您的应用程序的设备的操作系统版本。 | |
| 适用的设备或平台。以下值有效:
| |
| 自应用程序会话开始后经过的时间,以毫秒为单位。 | |
| 用户显卡的供应商。 | |
| 设备上 RAM 内存的大小,以 MB 为单位。 | |
| 设备的型号。 | |
unityappscore您还可以在一个游戏覆盖中引用多个属性:app.score >= 10
要定义符合所有条件并始终应用的游戏覆盖,只需输入user.score >= 10 && app.level == 5
trueJEXL 支持
Remote Config 支持 Java 表达式语言 (JEXL) 规范,但存在一些例外情况:- Remote Config 仅支持表达式。
- Remote Config 不支持脚本。
- Remote Config 目前不支持函数和条件。
- 尽管 Remote Config 支持使用 和
&&语句来设置多个条件,但 JEXL 字符串不能超过 500 个字符。||
app.level1.score部署比例
部署比例决定将遵循此游戏覆盖的用户群所占的百分比。如果值小于 100,Unity 会根据用户 ID 将该游戏覆盖随机分配给该比例的玩家。虽然不同玩家的体验可能有所不同,但每个玩家都将在各个游戏会话中获得一致的体验。与分析功能结合使用来解析结果时,此参数尤其有用。内容类型
您可以根据使用的服务为特定的游戏覆盖选择多种类型的内容,比如,Remote Config 中使用的Config OverridesCurrencyInventor Item起始日期和时间
您可以选择指定起始日期和时间,即游戏覆盖的生效时间。时间戳以 ISO 8601 UTC 格式 (YYYY-MM-DDThh:mm:ssZ结束日期和时间
您可以选择指定结束日期和时间,即游戏覆盖的失效时间。时间戳以 ISO 8601 UTC 格式 (YYYY-MM-DDThh:mm:ssZ将 Settings 应用到游戏覆盖
要将 Settings 应用到游戏覆盖,请导航到所需的游戏覆盖并编辑 Content(内容) 代码块以查看所有可用 Settings 的列表。启用和禁用游戏覆盖
使用 Game Override(游戏覆盖)页面顶部的按钮即可启用或禁用游戏覆盖。在编辑器窗口中编辑 Settings
要在编辑器的 Remote Config 窗口中编辑 Settings 的键和值,请确保保存并推送更改。完成该操作之前,您的配置仅储存在本地。请确保先推送更改来进行保存,然后再切换 Remote Config 环境。 您可以通过单击要删除的相应元素旁边的 **trashcan(回收站)**按钮来删除 Settings。请注意,如果活跃的游戏覆盖当前正在使用某个 Settings,则不应删除该 Settings。确定游戏覆盖的优先级
您可以为每个游戏覆盖分配一个加权优先级值,包括LowMediumHigh11000- 新的游戏覆盖和 Settings Config 配置默认为 。
medium - 当发生冲突时,则先创建的游戏覆盖优先分配优先级。
更新游戏覆盖和 Settings
要编辑游戏覆盖并保存您的更改,请执行以下操作:- 禁用游戏覆盖。
- 在编辑器窗口或 WebUI 中编辑所需的键值字段。
- 单击 **Push(推送)**按钮以将更改保存到远程服务。
- 单击 **Pull(拉取)**按钮来从服务检索最新的远程设置。
- 确认更新已应用。
- 启用游戏覆盖。
- 再次拉取以确认游戏覆盖已正确更新并生效。
JSON 设置值
如果您使用的是 JSON 类型的设置,则 Remote Config 窗口会显示 **JSON Editor(JSON 编辑器)**对话框。您可以使用该对话框调整 JSON 值的格式并进行验证。要打开此窗口,请单击 JSON 设置所对应的 **Edit(编辑)**按钮:


/Assets