Version: 2017.3
Remote Settings component
Testing Remote Settings

Scripting de Remote Settings

Utilice la clase Unity Scripting API RemoteSettings para manejar su configuración en el código. Puede registrar una función de controlador para el evento RemoteSettings.Updated. La clase RemoteSettings llama a todos los manejadores registrados cada vez que se inicia una nueva sesión. Cree los pares clave-valor para que el objeto RemoteSettings se descargue en el Tablero de Unity Analytics.

Obtener la configuración requiere una transacción de red, por lo que el objeto RemoteSettings distribuye el eventoUpdated de forma asíncrona. Puede que su función de controlador no se invoque en el mismo orden en todas las plataformas o incluso en cada lanzamiento de la misma plataforma. De hecho, si no hay conexión de red disponible y no se encuentran configuraciones en caché, el objeto RemoteSettings no envía un eventoUpdated en absoluto. Siempre inicialice sus variables de configuración con valores predeterminados razonables, y tenga en cuenta la posibilidad de que su manejador Updated pueda ser llamado en diferentes momentos o en un orden diferente.

Código ejemplo

El siguiente ejemplo muestra una clase que define una cantidad de propiedades para ajustar la dificultad del juego:

using UnityEngine;

public class RemoteTuningVariables : MonoBehaviour {
    
    public float DefaultSpawnRateFactor = 1.0f;
    public float DefaultEnemySpeedFactor = 1.0f;
    public float DefaultEnemyStrengthFactor = 1.0f;
    public static float SpawnRateFactor{ get; private set; }
    public static float EnemySpeedFactor{ get; private set; }
    public static float EnemyStrengthFactor{ get; private set; }

    void Start () {
        SpawnRateFactor = DefaultSpawnRateFactor;
        EnemySpeedFactor = DefaultEnemySpeedFactor;
        EnemyStrengthFactor = DefaultEnemyStrengthFactor;

        RemoteSettings.Updated += 
            new RemoteSettings.UpdatedEventHandler(HandleRemoteUpdate);
    }

    private void HandleRemoteUpdate(){
        SpawnRateFactor 
            = RemoteSettings.GetFloat ("SpawnRateFactor", DefaultSpawnRateFactor);
        EnemySpeedFactor
            = RemoteSettings.GetFloat ("EnemySpeedFactor", DefaultEnemySpeedFactor);
        EnemyStrengthFactor 
            = RemoteSettings.GetFloat ("EnemyStrengthFactor", DefaultEnemyStrengthFactor);
    }
}

Observe que la clase proporciona valores predeterminados en las llamadas al método RemoteSettings.GetFloat(). Si el objeto RemoteSettings no puede encontrar la clave especificada (si escribe mal un nombre de tecla, por ejemplo), el método aún asigna sus valores predeterminados a las variables de ajuste. De lo contrario, los métodos GetFloat() y GetInt() asignan cero a los números, GetString() asigna una cadena vacía a las cadenas, y GetBool() asigna variables falsas a booleanas.

La clase también asigna los mismos valores predeterminados a las propiedades en el método Start(). Cuando Unity no puede acceder al Servicio de Analytics y ninguna configuración previamente almacenada en caché está disponible localmente, el objeto RemoteSettings no distribuye el eventoUpdated. Asignar los valores predeterminados en el método Start() asegura que las propiedades siempre tengan valores razonables.


  • 2017–05–30 Page published with editorial review

  • 2017–05–30 - Servicio compatible con Unity 5.5 y posterior en esta fecha pero la compatibilidad de la versión puede estar sujeta a cambios.

  • New feature in 2017.1

Remote Settings component
Testing Remote Settings