(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発したゲームです!

    

ニフティクラウドモバイルバックエンドでデータストア機能を使ってみた【Unity】【NCMB】


このエントリーをはてなブックマークに追加


この記事でのバージョン
Unity 5.2.2f1 Personal
NCMB 2.1.0


はじめに

以前、Parseを使ってみて、かなり楽で良かったんですが、

残念ながらそのParseが終了してしまいました……。



それで、似たようなサービスはないものかーと探していたら

ニフティクラウドモバイルバックエンド(NCMB)なるものを発見、

しかもUnity対応無料でも使えるとかなんとか!




結論から言うと凄い楽に使えてオススメです!

何が楽って、Unityエディタ上で動作する上にiOS、Android共に特別な作業がいらない。

さらにチュートリアルやドキュメントが日本のサービスでは珍しく分かり易い!!


という事でNCMBを使ってみた記事です!


なお、データストア機能とはデータを保存・共有することができるデータベース機能の事です。

とは言え、データベース周りは全部勝手にやってくれるので、

ただデータを保存したり読み込んだりするだけの簡単なお仕事です!


NCMB

そもそもNCMBで何が出来るの?って話ですが、以下の通りデータストア機能を始め、

プッシュ通知位置情報検索なんてのも出来るようです。


f:id:kan_kikuchi:20160412065446p:plain
機能 | ニフクラ mobile backend


ただし、ファイルストア機能がUnityに対応していなかったり対応状況はまちまちなようです。

今回はこのうちのデータストア機能を使ってみました。


価格、制限

気になるお値段ですが、だいたい以下の通り。


f:id:kan_kikuchi:20160412070519p:plain
料金 | ニフクラ mobile backend


無料でもAPIリクエスト数が200万回 ⁄ 月と個人レベルで使うには十分じゃないでしょうか?

欲を言えば、BasicとExpertの間にお安いプランが欲しかった所……。


アカウント作成

では早速、NCMBを使っていくわけですが、まずはアカウント作成。

@niftyのアカウント(無料)が必要なようなので、これを作成。


f:id:kan_kikuchi:20160412070825p:plain
ID無料登録 | ニフクラ mobile backend


アカウントを作成したらクイックスタートを進めて行きます。

なおリファレンスはこちら


アプリ登録

NCMBを利用するアプリを適当に登録します。


f:id:kan_kikuchi:20160412071807p:plain


もちろん、リリースされていなくても問題ありません。


SDKインストール

以下からNCMB.○.○.○.zipをダウンロードし解凍。



解凍したディレクトリに入っているNCMB.unitypackageを実行し、SDKをインストールします。

ただし、android-support-v4.jarやgoogle-play-services.jarが

既に入っている場合は重複しないように注意しましょう。


f:id:kan_kikuchi:20160412072218p:plain


NCMBSettings作成

適当なゲームオブジェクトにNCMBSettingsをアタッチし、

ApplicationKeyとClientKeyを設定します。


f:id:kan_kikuchi:20160412072702j:plain


なお、ApplicationKeyとClientKeyはダッシュボードから確認できます。


f:id:kan_kikuchi:20160412072733j:plain


これで設定は完了です!


スクリプトからデータ登録

試しにスクリプトからデータベースにデータを登録してみます。

using NCMB;//必須

//TestClassというクラスを作成、サーバーに存在していなければ送信時に自動作成される。
NCMBObject testClass = new NCMBObject("TestClass");

//TestClassにmessageという項目を作成し、Hello, NCMB!というデータを登録
testClass["message"] = "Hello, NCMB!";

//データ送信
testClass.SaveAsync();


上記のコードを実行すると、


f:id:kan_kikuchi:20160412073213p:plain


これが、


f:id:kan_kikuchi:20160412073222p:plain


こう!簡単!!


ブラウザでデータ登録

データはブラウザ上からも登録可能です。


例えば、先ほど作成したTestClassに新しいデータを追加したい場合は、

新しいレコードからレコードを追加し、パーミッションを編集します。


f:id:kan_kikuchi:20160412073506j:plain
f:id:kan_kikuchi:20160412073623p:plain


後はてきとうにmessageを編集して完了!


f:id:kan_kikuchi:20160412073805j:plain


これまた簡単!!


データ取得

データの登録が済んだら読み込んでみましょう!

以下のようにNCMBQueryを使ってQuery(検索条件)を発行して取得します。

Queryの種類はリファレンスにて。

//TestClassからデータを取得する
NCMBQuery<NCMBObject> query = new NCMBQuery<NCMBObject> ("TestClass");
query.WhereNotEqualTo ("message", "");//messageが入力されていないもの以外全て取得

//データを検索し取得
query.FindAsync ((List<NCMBObject> objectList,NCMBException e) => {

  //取得失敗
  if(e != null){
    //エラーコード表示
    Debug.Log(e.ToString());
    return;
  }

  //取得した全データのmessageを表示
  foreach (NCMBObject ncbObject in objectList) {
   Debug.Log ("message : "  + ncbObject ["message"]);
  }
});


これを実行すると、


f:id:kan_kikuchi:20160412074436p:plain


データ取得!簡単!!

しかもこの状態で、iOSやAndroidでも動作します!

よくある各OS毎の設定とかもありません。


ただ一点、Awakeで取得や保存を実行しようとすると失敗することがあるので注意が必要です。


おわりに

お試しに使ってみたのですが、Parseよりも楽かもしれないぐらい簡単でした。

ちょっと心配なのは無料会員はサポートがなく問い合わせ等ができないことでしょうか。

まぁ、チュートリアルコミュニティがあるので、そう困らなそうではありますが。


欠点らしい欠点はありませんでしたが、

ニフティクラウドモバイルバックエンドという名前だけはどうにかならなかったのか……、

長いし、略称もNCMBと訳わからない(´・ω・`)