提供对您的远程设置的访问。
在应用程序新会话开始时,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 对象提供的设置是否是在当前会话期间从数据分析服务收到的。 |
BeforeFetchFromServer | 在 RemoteSettings 对象发出提取最新设置的网络请求前分发。 |
Completed | 当 RemoteSettings 对象发出的获取远程配置文件的网络请求完成时分发。 |
Updated | 当从服务器或本地缓存获取远程设置配置并成功解析时分发。 |
UpdatedEventHandler | 定义用于处理 RemoteSettings.Updated 事件的委托签名。 |