#Unity ゲームの設定値をNCMBから読み込むサンプル http://negi-lab.blog.jp/ConfigLoadFromNCMB
using UnityEngine;
using NCMB; // NCMB
using System; // (任意) イベントを送信する場合に必要
using DG.Tweening; // (任意) DOTween使用する場合に必要
/*
* ConfigLoadFromNCMB
* #Unity ゲームの設定値をNCMBから読み込むサンプル
*
* 解説記事 http://negi-lab.blog.jp/ConfigLoadFromNCMB
*/
public class ConfigLoadFromNCMB : MonoBehaviour
{
public EventHandler<float> ConfigSettingLoadedEventHandler; // (任意) 設定値読み込み完了イベント
[SerializeField] string ncmbClassName; // NCMBクラス名(例 "Config")
[SerializeField] string fieldName; // NCMBクラス内で使用するフィールド名(例 "playDuration")
[SerializeField] string testRecordId; // テスト用設定のレコードID (NCMBのobjectId)
[SerializeField] string normalRecordId; // 通常設定のレコードID (NCMBのobjectId)
private NCMBObject config; // NCMBオブジェクトを操作するための変数
private void Start ()
{
DOVirtual.DelayedCall ( 1f, () => LoadConfig () ); // 開始1秒後に読み込む例(DOTween使用)
}
// コンフィグ読み込み
private void LoadConfig ()
{
config = new NCMBObject ( ncmbClassName ); // config を指定クラスで初期化
// Qキーを押していれば短時間設定呼び出し、押していなければ通常設定呼び出し
config.ObjectId = Input.GetKey ( KeyCode.Q ) ? testRecordId : normalRecordId;
// NCMBオブジェクトの取得
config.FetchAsync ( ( NCMBException e ) =>
{
if ( e == null )
LoadValueByFloat (); // 正常時処理
else
Debug.Log ( "Config Load Error" ); // エラー時処理
} );
}
// 値を読み込んで float 型にする
private void LoadValueByFloat ()
{
var duration = float.Parse ( config[fieldName].ToString ());
ConfigSettingLoadedEventHandler ( this, duration ); // (任意) 設定値読み込み完了イベントを送信
Debug.Log ( "Play Duration: " + duration );
}
}