Files
rudder-unity-sdk/Packages/rudder.sdk/Samples~/RemoteConfig/RemoteConfigSample.cs
T

61 lines
1.8 KiB
C#
Raw Normal View History

using System.Text;
using System.Threading.Tasks;
using UnityEngine;
using RudderSdk.Unity;
namespace RudderSdk.Unity.Samples
{
public class RemoteConfigSample : MonoBehaviour
{
[SerializeField] string nickname = "Player";
[SerializeField] string region = "global";
[SerializeField] string language = "en";
[SerializeField] string roundSecondsKey = "demo_round_seconds";
[SerializeField] string playerSpeedKey = "demo_player_speed";
readonly SamplePage _page = new SamplePage(
"Remote Config",
"Load the project's remote config cache, then read typed values with fallbacks.");
void Start()
{
_page.Run(this, async () =>
{
await Rudder.Initialize().Auth.LoginWithDeviceAsync(region, language, nickname);
_page.Log("Signed in");
await Load();
});
}
void OnGUI()
{
_page.Draw(() =>
{
if (_page.Button("Reload"))
_page.Run(this, Load);
});
}
async Task Load()
{
var client = Rudder.Initialize();
_page.Log("RemoteConfig.LoadAsync()");
var configs = await client.RemoteConfig.LoadAsync();
var roundSeconds = client.RemoteConfig.Get(roundSecondsKey, 150f);
var playerSpeed = client.RemoteConfig.Get(playerSpeedKey, 260f);
var text = new StringBuilder();
text.AppendLine(roundSecondsKey + " = " + roundSeconds);
text.AppendLine(playerSpeedKey + " = " + playerSpeed);
text.AppendLine();
text.AppendLine("All keys (" + configs.Count + "):");
foreach (var pair in configs)
text.AppendLine(" " + pair.Key + " = " + pair.Value.Value + " (" + pair.Value.ValueType + ")");
_page.SetOutput(text.ToString());
_page.SetStatus("Loaded " + configs.Count + " config(s)");
}
}
}