サーバーに配置データを保存するにあたり、ユーザーを区別するためにユニークIDを発行しなければならない。
また、ユニークIDはローカルに保存しておいて、アプリを起動するたびに同じIDが読み込まれるようにする必要がある。
データをセーブするには、以前の記事に書いたSaveData.csを使う。
セーブデータは以下のような構造とする。
class Player { public string uuid; public int mode; public Vector3[] pos; public int[] type; public Player() { uuid = ""; mode = 0; pos = new Vector3[100*3]; type = new int[100 * 3]; for (int i = 0; i < 100 * 3; i++) type[i] = -1; } } Player player;
ユニークIDはuuidに保存されている。
起動時に、以下のような処理を入れる
void Start () { player = SaveData.GetClass<Player>("p1", new Player()); if(player.uuid=="") { System.Guid guid = System.Guid.NewGuid(); player.uuid = guid.ToString(); SaveData.SetClass<Player>("p1", player); SaveData.Save(); } Debug.Log("uuid=" + player.uuid);
p1というキーで保存されているデータを読み込む。
初回はデータが無いので、new Player()の結果が返ってくる。
コンストラクターがuuidに""に代入しているので、初回はuuidが空として、uuid発行処理が走る。UUIDを発行したので、p1をキーとしてplayerをセーブする。
一度アプリを終了させ、次回の起動では、SaveData.GetClassの読み込みでuuidが入っているので、uuid発行処理は今度は走らない。
これで、初回時はuuid発行。以後は同じuuidが起動時にセットされるという処理ができた。