遠隔でブラウザ/Editorから起動中のアプリの数値を変えられる「Unity Remote Config」を試してみました。
使ってみての感想など
- Unityサイトで数値を変えるのでネット接続環境でないとできない。
- スマホで数値を変えたいときビルドしなくても良いので開発中はかなり使える。
- アプリを起動した状態で数値が変えられるのが良い。(ただしアプリ側で定期的にデータ更新有無のチェックはしないといけない。)
- ブラウザからアプリ側への数値変更はできるがその逆はできない。デスクトップアプリでローカルxmlと併用する場合は「ローカルxmlから設定できる数値」と「RemoteConfigで変更する数値」は別にわけて管理した方が良い。
- お客様用のUnityのアカウント作成してお客様の方で遠隔更新してもらうということもできる。
導入方法
環境: Unity version: 2018.3以上
EditorのWindow > Package Manager
からRemote Config
を選択してInstall
します。
使い方
・Unity公式(English)
https://docs.unity3d.com/Packages/com.unity.remote-config@1.0/manual/index.html
https://www.youtube.com/watch?v=qw3rshPgTDo
・日本語でわかりやすい
https://kan-kikuchi.hatenablog.com/entry/UnityRemoteConfig
コード
RemoteConfigTest.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
using UnityEngine; using Unity.RemoteConfig; using UnityEngine.UI; public class RemoteConfigTest : MonoBehaviour { public Text testText; private int var0; private bool var1; public struct userAttributes { } public struct appAttributes { } void Awake() { // Add a listener to apply settings when successfully retrieved: ConfigManager.FetchCompleted += ApplyRemoteSettings; // Set the user’s unique ID: //ConfigManager.SetCustomUserID("Test1"); // Fetch configuration setting from the remote service: ConfigManager.FetchConfigs<userAttributes, appAttributes>(new userAttributes(), new appAttributes()); } // Start is called before the first frame update void Start() { } void ApplyRemoteSettings(ConfigResponse configResponse) { // Conditionally update settings, depending on the response's origin: switch (configResponse.requestOrigin) { case ConfigOrigin.Default: Debug.Log("No settings loaded this session; using default values."); break; case ConfigOrigin.Cached: Debug.Log("No settings loaded this session; using cached values from a previous session."); break; case ConfigOrigin.Remote: Debug.Log("New settings loaded this session; update values accordingly."); var0 = ConfigManager.appConfig.GetInt("var0"); var1 = ConfigManager.appConfig.GetBool("var1"); break; } testText.text = "var0: " + var0 + System.Environment.NewLine + "var1: " + var1; } // Update is called once per frame void Update() { ConfigManager.FetchConfigs<userAttributes, appAttributes>(new userAttributes(), new appAttributes()); } } |
コメントを残す