FC2ブログ
    05 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.» 07

    ハルシオンシステムの気ままBlog

    株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

     

    【ハルシオンブログ】データ保存をJsonでやってみた。 

    こんにちは。
    大坂です。

    秋らしくなってきたようなそうでもないような?
    関東でまだ30度超える日がるみたいなので早く涼しくなってほしいですね。

    今更ですがデータの保存をJsonにしてやってみたのでこんな感じだったよというお話。

    まぁ簡単にこんな感じでゲームの情報を持ってるクラスを作って。
    using System;

    [Serializable]
    public class GameData {

    public int money;
    public CharacterData charaData;

    [Serializable]
    public class CharacterData {
    public int level;
    public int hp;

    public void Init() {
    level = 1;
    hp = 100;
    }
    }

    public void Init() {
    money = 500;
    charaData = new CharacterData();
    charaData.Init();
    }
    }


    こんな感じでセーブとロードのクラスも作ってあげれば終わりです。
    using System.IO;
    using UnityEngine;

    public class SaveTest : MonoBehaviour {

    string filePath;
    public GameData gameData;

    private void Start() {
    filePath = Application.persistentDataPath + "/SaveData.json";
    Load();
    }

    public void Save() {
    using(FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write)) {
    using(StreamWriter sw = new StreamWriter(fs)) {
    sw.WriteLine(JsonUtility.ToJson(gameData));
    }
    }
    }

    public void Load() {
    if(!File.Exists(filePath)) {
    gameData = new GameData();
    gameData.Init();
    return;
    }

    using(FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read)) {
    using(StreamReader sr = new StreamReader(fs)) {
    GameData data = JsonUtility.FromJson(sr.ReadToEnd());
    gameData = data;
    }
    }
    }
    }


    セーブしてあげると、指定したパスこんな感じの内容のファイルができてますね!



    取り合ずこんな感じで簡単にできたよというお話でした。

    あ、ついでにデータ消すときにわざわざ作った場所に行って消すのが面倒な場合は
    こんなメソッド作って実行すればいいですね。
        public void Delete() {
    if(File.Exists(filePath)) {
    FileInfo fi = new FileInfo(filePath);
    fi.Delete();
    }
    }


    では今週もこんな感じで終わりです。
    またノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    コメント

    コメントの投稿

    Secret

    トラックバック

    トラックバックURL
    →http://halcyonsystemblog.jp/tb.php/536-7d99c55d
    この記事にトラックバックする(FC2ブログユーザー)