見出し画像

【試してみた】Unity Remote Config

どうも、デザイニウムのインタラクションデザイナーMIZUTANI KIRIN(@mizutanikirin)です!今回は、遠隔でブラウザ/Editorから起動中のアプリの数値を変えられる「Unity Remote Config」を試してみました。

使ってみての感想

- Unityサイトで数値を変えるのでネット接続環境でないとできない。
- スマホで数値を変えたいときビルドしなくても良いので開発中はかなり使える。
- アプリを起動した状態で数値が変えられるのが良い。(ただしアプリ側で定期的にデータ更新有無のチェックはしないといけない。)
- ブラウザからアプリ側への数値変更はできるがその逆はできない。デスクトップアプリでローカルxmlと併用する場合は「ローカルxmlから設定できる数値」と「RemoteConfigで変更する数値」は別に分けて管理した方が良い。
- お客様用のUnityのアカウント作成してお客様の方で遠隔更新してもらうということもできる。

導入方法

環境: Unity version: 2018.3 以上
EditorWindow > 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

コード

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

画像1

The Designium.inc
インタラクティブサイト
Twitter
Facebook

編集後記

こんにちは、広報のマリコです!デザイニウムは主に東京と会津の2拠点で活動していますが、お仕事は有り難いことに全国から頂いており、最近は海外のお仕事も頂くようになりました(感謝!)今回の記事はUnityの「Remote Config 」、つまり遠隔で操作ができるというものでした。このようなサービスを活用することで、遠方のお客様とのやり取りもスムーズになりそうですね!今後ますますこのようなサービスは需要がたかまってきそうです。


この記事が気に入ったらサポートをしてみませんか?