#UnityのPlayerPrefsが使いづらい…
Unityで使えるPlayerPrefsを使っている方は多いと思います、自分も初めて使った時は感動して多様しました(笑)
ですがPlayerPrefsを使っていくうちに「アレ?なんか使いづらくね?」と気づくわけです。
#PlayerPrefs何が使いづらい?
- まず大量のセーブに向いていない点です。例えば100個の値を保存したい場合100回PlayerPrefsを呼び出す必要性があるわけです。
- int型、float型、string型しか保存できない。
- どこに保存してあるかよくわからない。
などなど割と使いづらい点があるわけです。
#Libraryを使用
独自Libraryを作成しましたのでこれを使ってセーブやロードを使用と思います。
#使える機能
- セーブ
- ロード
- フォルダ内に存在するファイル数を取得
これらの機能を備えています。
#とりあえずSingletonさせたい
とりあえずSingletonさせたいのでここからSingletonMonoBehaviourをダウンロードしてください。
#コード
SaveLoadManager.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using SKLibrary.SaveAndLoad;
public class SaveLoadManager : SingletonMonoBehaviour<SaveLoadManager>
{
//ここにセーブフォルダを追加すれば楽になるかも
public enum SaveFolder
{
Audio = 0,
Stage = 1,
Save = 2
};
public void Save(object _saveObject, string _fileName,SaveFolder _saveFolder)
{
SaveLoadSystem.Save(_saveObject, _fileName,_saveFolder.ToString());
}
public object Load(string _fileName, SaveFolder _saveFolder)
{
return SaveLoadSystem.Load(_fileName, _saveFolder.ToString());
}
public int ReadFiles(SaveFolder _saveFolder, string _extension = "*.binary")
{
return SaveLoadSystem.ReadFiles(_saveFolder.ToString());
}
}
#まとめ
まだまだ拡張の余地があると思うので今後もアップグレードしようと思います。
#追記
セーブしたい場合[Serializable]をクラスにつけないとエラーがでます。