けいごの日記

2011-07-15

セーブ機能・ロード機能

UnityGames(http://unity-games.appspot.com)のサイト上にUnityでプレイしたゲーム情報を

保存する機能を追加いたしました。

まだα版ですがご報告です。



ダウンロード(サンプル付き)


サンプルゲーム

セーブ機能とロード機能



セーブする



他のゲームでセーブしたのをロードする



使い方



DataManagerを操作してセーブやロードを行います。


1.シーンの1番目にPrefabのDataManagerオブジェクトを配置してください。


2.セーブ・ロードを行うには各ゲームに発行されているSaveID・LoadIDが必要になります。IDを確認するにはゲームの登録・変更画面で確認が可能です。

f:id:anchan828:20110716015036p:image


ゲーム登録前にもSaveID・LoadIDは発行されますが仮発行状態なので登録画面のリロードなど注意してください。

セーブタイプ

現在Privateセーブ、Publicセーブがあります。

f:id:anchan828:20110726124035p:image


セーブの仕方

C#の場合

	private DataManager dm;

	void Start ()
	{
		//データを管理するコンポーネントを追加
		dm = gameObject.AddComponent<DataManager> ();
	}
	void OnGUI()
	{
	if (GUILayout.Button ("Save")) {
			//投稿する前のUnity上でテストを行いたい時に使用します
			//Test("UserID")のように特定のUserIDもセットできます 
			dm.Test ();
	
			//実際にUnityGamesに投稿するときには
			//UnityGamesで各ゲームに発行されるSaveIDをセットします
			//dm.SetSaveID("各ゲームのSaveID");

			//keyとvalueを設定(例:dm.AddField("name","UnityGames");)
	 	        dm.AddField ("name", nameStr);
			dm.AddField ("comment", comment);

			//saveTypeを指定しない場合はprivateでセーブされます。publicセーブはSave("public");
			dm.Save ();
			}
	}

JSの場合

ほとんど同じです。サンプルをご覧ください。


現在セーブデータはユーザー1人につき各ゲーム1つしかセーブできません。上書きとなります。

ロードの仕方


C#の場合

	private DataManager dm;

	void Start ()
	{
		//データを管理するコンポーネントを追加
		dm = gameObject.AddComponent<DataManager> ();
	}

	void OnGUI ()
	{
		if (GUILayout.Button ("Load")) {
			//投稿する前のUnity上でテストを行いたい時に使用します
			//Test("UserID")のように特定のUserIDもセットできます 

			dm.Test ();

			

			//実際にUnityGamesに投稿するときには
			//UnityGamesで各ゲームに発行されるLoadIDをセットします
			//dm.SetLoadID("各ゲームのLoadID");

			// void Load(string callback)
			// void Load (string loadType, string callback)
			// callback関数名を指定してください
			// saveTypeを指定しない場合はprivateでロードされます。publicロードはLoad("public","callback関数名");
			dm.Load ("Call");
		}
	}
	//callback関数として呼ばれます 
	//void callback関数名 (Hashtable json)
	void Call (Hashtable json)
	{
		j = json;
		load = true;
	}

JSの場合

ほとんど同じです。サンプルをご覧ください。

また別のゲームへセーブしたい、別のゲームからロードしたいという扱い方も出来ます。セーブ時、ロード時にSetGameIdを呼び出します。IDは保存先・ロード元のIDを使用します。

    dm.SetGameId ("ロード元のゲームID");

2011/08/17 追記

最新Verからセーブデータ名を設定できるようになりました。

DataManagerのSetSaveNameに引数を渡しセットしてください。

これにより「セーブデータ名が〇〇でpublicのセーブデータを取り出す」

のようなことが出来、実質無限にセーブ枠を持つことが出来ます。

詳しいことは@UGamesにご連絡ください

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/anchan828/20110715/1310745656