Version: 2022.2
public static T GetObject (string key);

参数

key 标识设置的键。

返回

T 具有分配了相应远程值的字段的对象的实例。

描述

获取与 key 标识的远程设置对应的对象(如果存在)。

Remote Settings 构造一个类型为 T 的对象,并将其字段或属性设置为相应的远程值,从而将字段名与键名相匹配。该过程忽略对象中与远程值不对应的字段,同样,还会忽略与类型中的字段或属性不对应的远程值。

如果在调用 GetObject() 时没有指定键,则 Remote Settings 将所有远程设置视为一个对象。如果指定的键不存在,则此函数返回 null。

Remote Settings 会转换数字和布尔值类型,但不转换字符串类型。例如,如果将浮点设置映射到整数字段,则浮点值将转换为整数。但如果尝试将数字或布尔值设置映射到字符串字段,则该字符串字段将保留为 null。如果远程设置包含对象,则根据父对象结构或类中的字段的类型转换该对象。

using UnityEngine;

public class HandleRemoteSettingsGetObject : MonoBehaviour { [System.Serializable] public struct MySettings { public bool enableBoss; public int maxLevelDifficulty; public string defaultPlayerName; public float gameBaseAcceleration; }

private void Start() { MySettings ms = RemoteSettings.GetObject<MySettings>("myGameSettings"); Debug.Log(ms.maxLevelDifficulty); } }

public static object GetObject (Type type, string key);

参数

key 标识设置的键。
type RemoteSettings 中表示的对象的类型。

返回

object 具有分配了相应远程值的字段的对象的实例。

描述

获取与 key 标识的远程设置对应的对象(如果存在)。

Remote Settings 构造一个类型由 type 参数指定的对象,并将其字段或属性设置为相应的远程值,从而使字段名与键名相匹配。该过程忽略对象中与远程值不对应的字段,同样,还会忽略与类型中的字段或属性不对应的远程值。

如果在调用 GetObject() 时没有指定键,则 Remote Settings 将所有远程设置视为一个对象。如果指定的键不存在,则此函数返回 null。

Remote Settings 会转换数字和布尔值类型,但不转换字符串类型。例如,如果将浮点设置映射到整数字段,则浮点值将转换为整数。但如果尝试将数字或布尔值设置映射到字符串字段,则该字符串字段将保留为 null。如果远程设置包含对象,则根据父对象结构或类中的字段的类型转换该对象。

using UnityEngine;

public class HandleRemoteSettingsGetObjectWithType : MonoBehaviour { [System.Serializable] public struct MyCustomSettings { public bool enableBoss; public int maxLevelDifficulty; public string defaultPlayerName; public float gameBaseAcceleration; }

private void Start() { MyCustomSettings ms = (MyCustomSettings)RemoteSettings.GetObject(typeof(MyCustomSettings), "myGameSettings"); Debug.Log(ms.maxLevelDifficulty); } }

public static object GetObject (string key, object defaultValue);

参数

defaultValue 用于默认值的对象。
key 标识设置的键。

返回

object 具有分配了相应远程值的字段的对象的实例。

描述

获取与 key 标识的远程设置对应的对象(如果存在)。

Remote Settings 构造一个类型由 type 参数指定的对象,并将其字段或属性设置为相应的远程值,从而使字段名与键名相匹配。该过程忽略对象中与远程值不对应的字段,同样,还会忽略与类型中的字段或属性不对应的远程值。

如果在调用 GetObject() 时没有指定键,则 Remote Settings 将所有远程设置视为一个对象。如果指定的键不存在,则此函数返回 null。

Remote Settings 会转换数字和布尔值类型,但不转换字符串类型。例如,如果将浮点设置映射到整数字段,则浮点值将转换为整数。但如果尝试将数字或布尔值设置映射到字符串字段,则该字符串字段将保留为 null。如果远程设置包含对象,则根据父对象结构或类中的字段的类型转换该对象。

using UnityEngine;

public class HandleRemoteSettingsGetObjectWithDefault : MonoBehaviour { [System.Serializable] public struct MySettingValues { public bool enableBoss; public int maxLevelDifficulty; public string defaultPlayerName; public float gameBaseAcceleration; }

private void Start() { MySettingValues defaultValue = new MySettingValues(); defaultValue.enableBoss = true; MySettingValues ms = (MySettingValues)RemoteSettings.GetObject("myGameSettings", defaultValue); Debug.Log(ms.maxLevelDifficulty); } }