2015年04月09日

Unityでデータのセーブとロードを実装する(その2)


前回の『Unityでデータのセーブとロードを実装する(その1)』の続きです。

前回のラストにて、

ところで、このPlayerPrefsですが、
読み書き出来るデータの型が『Int』『Float』『String』だけのようです。
また、配列は読み書き不可のようです。

こんなことをつぶやきました。この辺を解決したいなと。

実際にセーブやロードを実装するとき、
扱うデータが『Int』『Float』『String』だけならよいのですが、
人情的には『bool』や『long』、Unity内なら『Vector3』も使いたくなる場面はありますよね。
無理やりString型で保存する方法もあるにはありますが、
出来ればbool型はbool型、Vector3型はVector3型として扱いたいのが人情。

また、PlayerPrefsは配列にも対応してません。
配列変数をいちいち一つずつキーをつけて保存ってのも、現実的では無い気がします。

それらを解決する素晴らしいものとして、『PlayerPrefsX』というのがあります。
これはboolやlong等PlayerPrefsでカバーしてない型の読み書きや、
配列の読み書きにも対応している優れものです。

入手方法は、直接ファイルはダウンロード出来ませんので、
上記リンク先下の方のコードをコピペして使って下さい。

使い方の礼はこんな感じ。

//bool型のデータの読み書き
bool result;
result=PlayerPrefsX.Getbool("isOK");      //データの読み込み
PlayerPrefsX.Setbool("isOK",result); //データの保存

//Vector3型のデータの読み書き
Vector3 resultGrid;
resultGrid=PlayerPrefsX.GetVector3("grid");   //データの読み込み
PlayerPrefsX.SetVector3("grid",new Vector3(3.5f,2.0f,0f)); //データの保存

//Int型配列のデータの読み書き
int[] scoreArray=new int[5];
scoreArray=PlayerPrefsX.GetIntArray("score");      //配列データの読み込み
PlayerPrefsX.Setbool("score",scoreArray); //配列データの保存

こんな具合で、PlayerPrefsと同じノリで使えます。
配列を扱う場合のみ、Get○○Arrayという感じで、配列を意味するArrayをつければよろしい。

これ以上特筆することがないんですよね…(;・∀・)
ぁあ、おれ自身よくやらかすんですが、PlayerPrefsXの”X”を忘れないように。
まぁこの辺は自分でメソッド作ってどうこうってできそうですよね。

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)