Version: 2023.2

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 事件的委托签名。