9月26日にUnityをテーマにした勉強会を開催します。参加はこちらから!
7月16日にUnity SDKをリリースしました。これによりゲーム開発においてもサーバサイドを構築せず、mBaaSを使って開発できるようになります。特にゲームはUI/UX周りが重視されるので、サーバサイドの開発リソースをアプリサイドに専念できるのは魅力ではないでしょうか。
ということで今回はまず、ニフティクラウド mobile backend for Unityの使い方をチュートリアルに沿って紹介したいと思います。
必要なもの
ニフティクラウド mobile backendのアカウント
ニフティクラウド mobile backendのアカウントは無料で作成いただけます。さらにBasicプランであれば月200万APIアクセスまで無料になりますので今回のお試しであれば無料で利用できます。
作成はこちらより行ってください。
Unity
Unityはこちらよりダウンロードできます。Windows/Mac OSXに対応しています。約1.2GBあります。
インストールはインストーラーを実行してウィザードに沿っていくだけで完了します。
Unity SDK
Unity SDKはこちらよりダウンロードできます。ダウンロード後、ファイルを解凍してください。
まずは新規プロジェクト作成
Unityを起動します。
起動したら FileメニューのNew Projectを選択します。
今回はブランクプロジェクトで良いので、そのままCreate Projectボタンを押します。
SDKをコピー
プロジェクトが作成されたら、Assetsの中にUnity SDKのNCMB.dllをドラッグ&ドロップします。
空のGame Objectを作成
次にGame ObjectメニューからCreate Emptyを選んで空のGame Objectを作成します。名前は分かりやすいように NCMBSettings と変更します。
先ほど追加したSDKには右矢印があると思います。
矢印をクリックすると NCMBSettings というアイコンが表示されます。
この表示されたアイコンを先に作成したGame Objectにドラッグ&ドロップしてアタッチします。
正しくアタッチされているとGame Objectをクリックした際に Inspector 欄にアプリケーションキー、クライアントキーの設定欄が表示されるようになります。
ここで設定するアプリケーションキー、クライアントキーは下記手順で取得します。
ニフティクラウド mobile backendでアプリ作成
こちらにアクセスして、ニフティクラウド mobile backend用のアプリを作成します。名称は自由に決めてください。
作成するとアプリケーションキーとクライアントキーが生成されます。これをUnity側に設定します(先ほどのInspectorのアプリケーションキーとクライアントキーです)。これでプロジェクトのどのシーン、どのスクリプトでもニフティクラウド mobile backendの機能が使えるようになります。
もし管理画面を閉じてしまった場合は、コンソールのアプリ設定から確認できます。
新規C#ファイルを作成
では実際に使ってみます。
Assetsを右クリックして、Create > C# Scriptを選択します。ファイル名は自由に指定してください。
ファイルをHierarchyに関連づけ
先ほど追加したC#ファイルをドラッグして、Hierarchyにある任意のゲームオブジェクトに関連づけます(ドラッグ&ドロップでできます)。
UnityのC#スクリプトを編集
先ほど追加したC#スクリプトファイルをダブルクリックします。そうするとC#スクリプトの編集画面になります。2行目にある、
using UnityEngine; using System.Collections;
の上に以下のように記述します。
using NCMB; using System.Collections.Generic; using UnityEngine; using System.Collections;
データストアの検索と新規追加
次にStart()メソッド内に次のように記述します。
NCMBQuery<NCMBObject> query = new NCMBQuery<NCMBObject> ("TestClass"); query.WhereEqualTo ("message", "Hello, Tarou!"); query.FindAsync ((List<NCMBObject> objectList,NCMBException e) => { if (objectList.Count != 0) { NCMBObject obj = objectList [0]; Debug.Log ("message : " + obj ["message"]); } else { NCMBObject testClass = new NCMBObject ("TestClass"); testClass ["message"] = "Hello, NCMB!"; testClass.SaveAsync (); } });
処理としてはデータストアのTestClassでmessageキーの値がHello, Tarou!であるものを検索し、データがあればログ出力し、なければ Hello, NCMB! という値のデータを追加しています。検索、保存のどちらもAsync(非同期)で行われています。そのため普段のゲーム操作の中で使っても固まったりすることはありません。
全体としては次のようになります。
using NCMB; using System.Collections.Generic; using UnityEngine; using System.Collections; public class NewBehaviourScript : MonoBehaviour { // Use this for initialization void Start () { NCMBQuery<NCMBObject> query = new NCMBQuery<NCMBObject> ("TestClass"); query.WhereEqualTo ("message", "Hello, Tarou!"); query.FindAsync ((List<NCMBObject> objectList,NCMBException e) => { if (objectList.Count != 0) { NCMBObject obj = objectList [0]; Debug.Log ("message : " + obj ["message"]); } else { NCMBObject testClass = new NCMBObject ("TestClass"); testClass ["message"] = "Hello, NCMB!"; testClass.SaveAsync (); } }); } // Update is called once per frame void Update () { } }
実行
それではC#スクリプトの編集ウィンドウを閉じて、アプリを実行してみます。Unityのメインウィンドウで再生ボタンをクリックします。
今回は特に画面を用意していませんので青い画面で表示されるかと思います。
この時点ではニフティクラウド mobile backend上にTestClassも存在しませんので検索は0件で返ってきます。コンソール画面のデータストアを見ると、TestClassが追加されているのが分かるかと思います。
そしてデータとして “Hello, NCMB!” が追加されています。
データ追加
次に管理画面上で新しいデータを追加します。新しいレコードボタンをクリックします。messageカラムの行をダブルクリックし、 Hello, Tarou! と入力します。編集したらエンターキーを押すと保存が実行されます。
再実行
データの追加が終わったら、再度Unityプロジェクトを実行します。そしてコンソールタブに切り替えると、
message : Hello, Tarou!
と出力されているのが確認できるかと思います。
使いどころ
ゲームアプリは高い反応が求められることが多いので、リアルタイムな通信を行う際にはニフティクラウド mobile backendは向かないと考えられます。ゲームのスコアを保存したり、アイテム情報を保存しておくと言った使い方に向いているのではないでしょうか。
なお1.0.0ではデータストア、会員管理、位置情報の機能のみを提供しており、ファイルストア、プッシュ通知、SNS連携機能は未対応となっています。ご注意ください。
ぜひUnityでゲームを開発されていてサーバサイドが必要になってきた際にはニフティクラウド mobile backendを使ってみてください!
9月26日にUnityをテーマにした勉強会を開催します。参加はこちらから!