ひとりでのアプリ開発 - fineの備忘録 -

ひとりでアプリ開発をするなかで起こったことや学んだことを書き溜めていきます

Unity - Quick Save:配列や List をセーブ・ロードする -

初めに

 Quick Save で配列や List がセーブ・ロードできることがわかったので、方法をまとめておきます。


Quick Save について

 Quick Save はデータのセーブ・ロード・暗号化などができる無料アセットです。以前、記事に使い方をまとめておりますので、そちらをご覧ください。
fineworks-fine.hatenablog.com

配列や List のセーブ・ロード

 一次元配列、List、多次元配列は通常の変数と同様の方法でセーブ・ロードできます。

スクリプト

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using CI.QuickSave;

public class SaveTestListScript : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
      //配列
      int[] numbers = new int[3]{2, 4, 6};
      string[] names = {"fine", "soso", "sleepy"};

      //List
      List<int> list = new List<int>();
      list.Add(10);
      list.Add(20);

      //多次元配列
      int[,] dimension = new int[2, 3]{
        {0, 3, 6},
        {1, 4, 7},
      };


      // QuickSaveWriterのインスタンスを作成
      QuickSaveWriter writer = QuickSaveWriter.Create("Test");
      // データを書き込む
      writer.Write("Num", numbers);
      writer.Write("Names", names);
      writer.Write("List", list);
      writer.Write("Dim", dimension);

      // 変更を反映
      writer.Commit();

      // QuickSaveReaderのインスタンスを作成
      QuickSaveReader reader = QuickSaveReader.Create("Test");
      // データを読み込む
      int[] _numbers = reader.Read<int[]>("Num");
      string[] _names = reader.Read<string[]>("Names");
      List<int> _list = reader.Read<List<int>>("List");
      int[,] _dimension = reader.Read<int[,]>("Dim");
    }
}

最後に

 JsonUtility を使うよりかなり直感的につかえます。なにより無料なのがうれしい。