Version: 2020.3

RemoteSettings

class in UnityEngine

切换到手册

描述

提供对您的远程设置的访问。

在应用程序新会话开始时,Unity 会提出网络请求以从数据分析服务获取最新远程设置配置。在运行应用程序的常规非开发构建时,Unity 会请求 Release Configuration,而在运行开发构建时请求 Development builds。Unity Editor 中的播放模式被视为开发构建。

注意:为了让 Unity 请求 Development 配置,必须使用 Unity 5.6.0p4+、5.6.1p1+、2017.1+ 或 Unity 5.5.3p4+ 来构建应用程序,并在 Build Settings 窗口中勾选 Development Build 复选框。如果使用较低版本的 Unity 来构建游戏,则 Unity 始终请求 Release 配置。

RemoteSettings 对象分发 BeforeFetchFromServer::事件,然后提出关于设置的网络请求。

如果有配置文件可用,Remote Settings 对象会分发 Updated 事件。请注意,如果网络请求失败并且没有远程配置文件可用,RemoteSettings 对象会检查是否存在本地缓存配置文件。如果有,它会使用这些缓存值,并且仍然会分发 Updated。仅当远程请求失败并且不存在缓存版本时,才分发 Updated

无论远程请求是否成功,RemoteSettings 对象都会分发 Completed 事件。传递给 Completed 事件的参数提供 HTTP 响应代码以及是否收到了远程配置文件。

RemoteSettings 对象接收远程配置时,它会缓存该文件,以便在当前计算机或设备离线时使用。但是,如果您的游戏实例尚未保存此设置(例如玩家第一次运行游戏时没有网络连接),则 RemoteSettings 对象不会分发 Updated 事件,因此不会更新游戏变量。通过网络请求 Remote Settings 配置是一个异步过程,在初始场景完成加载之前可能无法完成,或者根本无法成功完成,因此您应该始终将游戏变量初始化为合理的默认值。

注意:Unity 下载 Remote Settings 配置时使用的 Web 服务是只读的,但未受保护。这意味着配置可能被第三方读取。您不应将敏感或机密信息放入 Remote Settings。同样,保存的设置文件可能由终端用户读取和修改(尽管在下次启动具有可用互联网连接的会话时会覆盖任何修改)。

Analytics dashboard 上以键/值对的方式创建远程设置。

您只能在 Remote Settings 中存储基本类型(int、float、 string 和 boolean)。

另请参阅:Remote Settings (Manual)

using UnityEngine;

public class HandleRemoteSettings : MonoBehaviour { private void Start() { // Add this class's updated settings handler to the RemoteSettings.Updated event. RemoteSettings.Updated += RemoteSettingsUpdated; }

private static void RemoteSettingsUpdated() { Debug.Log("***** GOT NEW REMOTE SETTINGS ******"); Debug.Log(RemoteSettings.GetInt("testInt")); Debug.Log(RemoteSettings.GetString("testString")); Debug.Log(RemoteSettings.GetFloat("testFloat")); Debug.Log(RemoteSettings.GetBool("testBool")); Debug.Log(RemoteSettings.GetBool("testFakeKey")); Debug.Log(RemoteSettings.GetBool("testFakeKey", true)); Debug.Log(RemoteSettings.HasKey("qqq")); Debug.Log(RemoteSettings.HasKey("testInt")); Debug.Log(RemoteSettings.GetBool("unity.heatmaps")); } }

静态函数

ForceUpdate强制游戏从服务器下载最新设置并更新其值。
GetBool获取与 key 标识的远程设置对应的值(如果存在)。
GetCount获取远程设置配置中键的数量。
GetDictionary获取与 key 标识的远程设置对应的字典(如果存在)。
GetFloat获取与 key 标识的远程设置对应的值(如果存在)。
GetInt获取与 key 标识的远程设置对应的值(如果存在)。
GetKeys获取一个数组,其中包含远程设置配置中的所有键。
GetLong获取与 key 标识的远程设置对应的值(如果存在)。
GetObject获取与 key 标识的远程设置对应的对象(如果存在)。
GetString获取与 key 标识的远程设置对应的值(如果存在)。
HasKey报告远程设置配置中是否存在指定的 key。
WasLastUpdatedFromServer报告 RemoteSettings 对象提供的设置是否是在当前会话期间从数据分析服务收到的。

Events

BeforeFetchFromServer在 RemoteSettings 对象发出提取最新设置的网络请求前分发。
Completed当 RemoteSettings 对象发出的获取远程配置文件的网络请求完成时分发。
Updated当从服务器或本地缓存获取远程设置配置并成功解析时分发。

委托

UpdatedEventHandler定义用于处理 RemoteSettings.Updated 事件的委托签名。