提供对您的远程设置的访问。
在应用程序新会话开始时,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 事件的委托签名。 |
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.