読者です 読者をやめる 読者になる 読者になる

nirasan's tech blog

趣味や仕事の覚え書きです。Linux, Perl, PHP, Ruby, Javascript, Android, Cocos2d-x, Unity などに興味があります。

Unity で Parse Config を使いアプリの設定をリモート管理する 〜 例えば審査中だけアプリの挙動を変化させる

はじめに

  • Parse.com の Parse Config を使うと、アプリの設定を手軽にリモートで管理することが出来、例えば審査中だけ特定の GameObject を表示させないなどの処理が書きやすくなります。
  • Parse Config は単純なキーバリューストアで、以下のような型が扱えます。
    • string
    • bool/int/double/long
    • DateTime
    • ParseFile
    • ParseGeoPoint
    • IList (even nested)
    • IDictionary (even nested)
  • Parse.com の導入は過去記事を参照。

審査中だけ特定の GameObject を非表示にする場合

Parse Confing の設定

  • Parse.com のサイトから Core > Config で Parse Config の画面へ
  • Parameter : "InReview", Type: Boolean, Value true でパラメータの作成
  • ドキュメントは https://parse.com/docs/unity_guide#config

Unity 側のコード

		public GameObject TargetObject;
		ParseConfig parseConfig = null;
		bool? inReview = null;
		
		void Start () {
			GetParseConfig ();
		}

		void Update () {
			if (inReview != null) {
				NGUITools.SetActive (TargetObject, !((bool)inReview));
				inReview = null;
			}
		}
		
		void GetParseConfig () {
			ParseConfig.GetAsync ().ContinueWith (t => {
				if (t.IsFaulted) {
					// using cacehd config
					parseConfig = ParseConfig.CurrentConfig;
				} else {
					parseConfig = t.Result;
				}

				bool result = parseConfig.TryGetValue ("InReview", out inReview);
				if (!result) {
					// failed
					inReview = null;
				}
			});
		}