LoginSignup
0
0

More than 1 year has passed since last update.

Unityでゲームのキャラを保存する

Posted at

個人作成のRPGゲームで出てくるキャラをセーブで保存する方法が、簡単だったのでメモ。

ざっくりいうとポケモンやドラクエモンスターズみたいなゲームなのですが、パーティのモンスターはUnityのインスペクターから設定していました。
が、モンスターを新たに仲間にする処理や、セーブ機能の実装を考えた時に、仲間にしたタイミングで手持ちのデータを保持しておきたいなと考えました。

今日そのソースをかけたので簡単に共有します。

セーブ・ロード機能
セーブ:モンスターデータをJson形式に変えて、Jsonファイルに書き出し
ロード:Jsonファイルのデータを読み込んでモンスター生成

以下ソース。

セーブ
StreamWriter writer;
// monster <= Monster型
string jsonstr = JsonUtility.ToJson(monster);// モンスター情報をJson形式に変換
writer = new StreamWriter(Application.dataPath + "/savedata.json", false);
writer.Write(jsonstr);
writer.Flush();
writer.Close();
ロード
string datastr = "";
StreamReader reader;
reader = new StreamReader(Application.dataPath + "/savedata.json");
datastr = reader.ReadToEnd();
reader.Close();
Monster monster = JsonUtility.FromJson<Monster>(datastr); // JsonデータをMonter型にパース
// monsters <= List<Monster>
monsters.Add(monster);

JsonファイルはAssetフォルダ内に`savedata.json'というファイル名で保存されます。
(すでにある場合は上書き保存)

実際のソースは手持ちのモンスター分書き出し・読み込みを繰り返していますがもっと効率の良い方法がありそうですね。
マップ(プレイヤーがどこにいるか)、ストーリーのセーブロードも考えないといけないので、どんなデータをJsonファイルに書き出せばいいのか考えないといけませんね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0