【Unity】KiiObjectをシリアライズするKiiObjectMapper【KiiCloud】

昔LitJsonを参考にして作ったものですが何かと便利そうなので置いておきます。

ダウンロード

KiiObjectMapper.unitypackage

こちらをダウンロードし、Unity版KiiCloudSDKがインポート済みのプロジェクトへこちらもインポートしてください。

使い方

public class GameUserExample
{
	public string userName;
	public System.DateTime loginTime;
	public int level = 1;
	public int exp = 0;
}

たとえばこのようなpublicメンバ変数で保存したいデータを定義したクラスを用意しておきます。

さらに別クラスを作っておき、先ほどのGameUserExampleのpublicメンバ変数として宣言しておけばそちらも自動的にシリアライズされるようになります。
また配列やListなどにも対応。
この辺はLitJsonのLitJson.JsonMapperと同じ感じです。

そして、

GameUserExample gameUser = KiiObjectMapper.ToObject<GameUserExample>( kiiObject );

で受け取り。

bool deleted = false;
KiiObjectMapper.ToKiiObject( kiiObject,gameUser,out deleted );

で上書きします。
上書きしたあとは、KiiObject.Save()やKiiUser.Update()などを呼んでサーバー側へも反映してください。

また、deletedはデータの要素が以前より減っている場合にtrueになります(必要ないデータをクラスから削除した、など)。
trueの時、サーバー側にも古いデータを残したくない場合は、Saveの代わりにSaveAllFieldsを呼ぶなどしてください。

シリアライズ可能なのは、KiiObjectのほかにもKiiUserやUserFields(最新版SDKであればUserrFields推奨なはず)など、KiiBaseObjectからの派生クラスであれば利用可能です。

Unityのアセット販売中!

ステートマシンの状態遷移やパラメータはエディタで編集でき、
ゲームロジックに依存するステートの挙動はスクリプトで記述可能なエディタ拡張。

詳細はこちら

RPGツクールVXやWOLF RPGエディターのオートタイルに準拠したエディタ拡張。

詳細はこちら

オススメ!