##クイックスタートからやってみる
using UnityEngine;
using System.Collections;
using NCMB;
using System.Collections.Generic;
public class NCMB_test : MonoBehaviour {
// Use this for initialization
void Start () {
NCMBObject testClass = new NCMBObject("TestClass");
testClass["message"] = "Hello, NCMB!";
testClass.SaveAsync();
}
// Update is called once per frame
void Update () {
}
}
unitySDKのリファレンスは以下
以降void Start()を改変して上記のドキュメントを一つづ使っていくことを始める。
.Add
Addはこうやって使うっぽい
NCMBObject testClass = new NCMBObject("TestClass");
testClass["message"] = "Hello, NCMB!";
testClass.Add ("key","value");
testClass.SaveAsync();
.AddRangeToList
AddRangeToListは配列を保存するものらしい
NCMBObject testClass = new NCMBObject("TestClass");
testClass["message"] = "Hello, NCMB!";
int[] sourceDatas = new int[] { 123, 456, 789 };
IEnumerable<int> evens = sourceDatas ;
testClass.AddRangeToList ("key",evens);
testClass.SaveAsync();
実行するとこうなる
IEnumerable自体が、作った配列にさまざまな操作を行えるようなものらしい
https://msdn.microsoft.com/ja-jp/library/h1x9x1b1
ちなみに現在のUnityは.NET3.5らしいので上の↑ドキュメントに書かれていることはほとんどできないが。。。
.AddRangeUniqueToList
配列についかするメソッドだが、追加前の配列と追加する配列の重複する要素は除いて追加を行う関数
NCMBObject testClass = new NCMBObject("TestClass");
testClass["message"] = "Hello, NCMB!";
int[] sourceDatas = new int[] { 123, 456, 789 };
IEnumerable<int> evens = sourceDatas ;
testClass.AddRangeToList ("key",evens);
int[] sourceDatas2 = new int[] { 123,999,111 };
IEnumerable<int> evens2 = sourceDatas2 ;
testClass.AddRangeUniqueToList ("key", evens2);
testClass.SaveAsync();
.AddToList
NCMBObject testClass = new NCMBObject("TestClass");
testClass["message"] = "Hello, NCMB!";
int[] sourceDatas = new int[] { 123, 456, 789 };
IEnumerable<int> evens = sourceDatas ;
testClass.AddToList ("key",evens);
testClass.SaveAsync();
結果
配列が一つのオブジェクトとして認識される
.AddUniqueToList
NCMBObject testClass = new NCMBObject("TestClass");
testClass["message"] = "Hello, NCMB!";
int[] sourceDatas = new int[] { 123, 456, 789 };
IEnumerable<int> evens = sourceDatas ;
testClass.AddToList ("key",evens);
int[] sourceDatas2 = new int[] { 123,999,111 };
IEnumerable<int> evens2 = sourceDatas2 ;
testClass.AddUniqueToList ("key", evens2);
testClass.SaveAsync();
.ContainsKey
ローカルで、自分が作ったオブジェクトに特定のキーがあるかないかを調べる
NCMBObject testClass = new NCMBObject("TestClass");
testClass["message"] = "Hello, NCMB!";
bool result = testClass.ContainsKey("message");
Debug.Log (result);
.DeleteAsync
次は削除系なのであらかじめ最初のDBの状態を示しておく
この2行目のレコードを削除する
NCMBObject testClass = new NCMBObject("TestClass");
testClass.ObjectId = "4BTTFMpreB0r2z78";
testClass.DeleteAsync ();
.FetchAsync
次も取得系なのであらかじめ最初のDBの状態を示しておく
NCMBObject testClass = new NCMBObject("TestClass");
testClass.ObjectId = "swxRC66dFia3s3R3";
testClass.FetchAsync ();
System.Threading.Thread.Sleep(2000);
Debug.Log( testClass["message"] );
.GetRelation
リレーションを貼り付けるメソッド、.FetchAsyncメソッドで取得したデータを別のクラスとリレーションさせる
NCMBObject testClass = new NCMBObject("TestClass");
testClass.ObjectId = "swxRC66dFia3s3R3";
testClass.FetchAsync ();
System.Threading.Thread.Sleep (2000);
//親のリレーション取得
NCMBObject parentObj = new NCMBObject ("Parent_TestClass");
NCMBRelation<NCMBObject> relation = parentObj.GetRelation<NCMBObject> ("Class");
//親にリレーション追加
relation.Add (testClass);
parentObj.SaveAsync ();
すると下記のようなクラスが新たにでき「リレーションを見る」をクリックすると
下記のようにリレーション先のクラスがみれる
.CreateWithoutData
リレーション先を探すときに使うものらしい
上記のリレーションの関係で以下のように使うと
NCMBObject parentObj = NCMBObject.CreateWithoutData ("Parent_TestClass", "8FEj5hb0uDvasjvl");
parentObj.FetchAsync ((NCMBException e) => {
if (e != null) {
//エラー処理
} else {
//親のリレーション取得
NCMBRelation<NCMBObject> relation = parentObj.GetRelation<NCMBObject> ("Class");
NCMBQuery<NCMBObject> query = relation.GetQuery ();
//リレーション先検索
query.FindAsync ((List<NCMBObject> childObjList,NCMBException error) => {
if (error != null) {
//エラー処理
} else {
//成功時の処理
foreach (NCMBObject obj in childObjList) {
Debug.Log ("objectId : " + obj.ObjectId);
}
}
});
}
});
.Increment
次はインクリメント処理なので先ほどの「TestClass」の「key」カラムのバリューを「1」(数値に変えて追加)に変更する、ちょうど下記のような感じ
NCMBObject testClass = new NCMBObject("TestClass");
testClass.ObjectId = "swxRC66dFia3s3R3";
testClass.Increment ("key");
testClass.SaveAsync ();
結果こうなる
ちなみに
NCMBObject testClass = new NCMBObject("TestClass");
testClass.ObjectId = "swxRC66dFia3s3R3";
testClass.Increment ("key",3);
testClass.SaveAsync ();
このようにしてIncrement時に任意の数を指定すると下記のように任意の数だけインクリメントされる(減算時は-1とかを指定する)。
.Remove
NCMBObject testClass = new NCMBObject("TestClass");
testClass["message"] = "Hello,NCMB";
testClass ["key"] = 10;
testClass.Remove ("message");
testClass.SaveAsync ();
こうなる
.RemoveRangeFromList
NCMBObject testClass = new NCMBObject("TestClass");
testClass["message"] = "Hello,NCMB";
int[] sourceDatas = new int[] { 123, 456, 789, 10, 10 };
IEnumerable<int> evens = sourceDatas ;
testClass.AddRangeToList ("key",evens);
int[] RemoveDatas = new int[] {10};
IEnumerable<int> remove = RemoveDatas;
testClass.RemoveRangeFromList ("key",remove);
testClass.SaveAsync ();