Version: 2022.3
LanguageEnglish
  • C#

RemoteSettings.GetObject

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

Declaration

public static T GetObject(string key);

Parameters

key The key identifying the setting.

Returns

T An instance of the object with fields assigned the corresponding remote values.

Description

Gets the object corresponding to the remote setting identified by key, if it exists.

Remote Settings constructs an object of type T and sets its fields or properties to the corresponding remote value, matching field name to key name. The process ignores fields in the object that do not correspond to a remote value and, likewise, ignores remote values that do not correspond to a field or property in the type.

If you do not specify a key when calling GetObject(), Remote Settings treats all of your remote settings as a single object. If you specify a key that does not exist, this function returns null.

Remote Settings converts numbers and boolean types, but it does not convert string types. For example, if you map a float setting to an integer field, the float value is cast to an integer. However, if you attempt to map a numeric or boolean setting to a string field, the string field is left as null. If a remote setting contains an object, that object is converted according to the type of the field in the parent object struct or class.

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); } }

Declaration

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

Parameters

key The key identifying the setting.
type The type of object represented in RemoteSettings.

Returns

object An instance of the object with fields assigned the corresponding remote values.

Description

Gets the object corresponding to the remote setting identified by key, if it exists.

Remote Settings constructs an object of the type specified by the type parameter and sets its fields or properties to the corresponding remote value, matching field name to key name. The process ignores fields in the object that do not correspond to a remote value and, likewise, ignores remote values that do not correspond to a field or property in the type.

If you do not specify a key when calling GetObject(), Remote Settings treats all of your remote settings as a single object. If you specify a key that does not exist, this function returns null.

Remote Settings converts numbers and boolean types, but it does not convert string types. For example, if you map a float setting to an integer field, the float value is cast to an integer. However, if you attempt to map a numeric or boolean setting to a string field, the string field is left as null. If a remote setting contains an object, that object is converted according to the type of the field in the parent object struct or class.

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); } }

Declaration

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

Parameters

defaultValue The object that should be for default values.
key The key identifying the setting.

Returns

object An instance of the object with fields assigned the corresponding remote values.

Description

Gets the object corresponding to the remote setting identified by key, if it exists.

Remote Settings constructs an object of the type specified by the type parameter and sets its fields or properties to the corresponding remote value, matching field name to key name. The process ignores fields in the object that do not correspond to a remote value and, likewise, ignores remote values that do not correspond to a field or property in the type.

If you do not specify a key when calling GetObject(), Remote Settings treats all of your remote settings as a single object. If you specify a key that does not exist, this function returns null.

Remote Settings converts numbers and boolean types, but it does not convert string types. For example, if you map a float setting to an integer field, the float value is cast to an integer. However, if you attempt to map a numeric or boolean setting to a string field, the string field is left as null. If a remote setting contains an object, that object is converted according to the type of the field in the parent object struct or class.

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); } }