データセーブとロードを便利にする有名なアセットEasy Saveについてです。
unity標準のPlayerPrefsよりと同等の使い勝手の良さながらも多機能です。
PlayerPrefsではint型、float型、string型の保存しかできないけど、
Easy Saveでは、DateTime型とかList<T>型、Vector3型などなど40種類程の型がサポートされている。
昔ちらっと使った事があったけど忘れたから習熟も兼ねてまとめてみる。
今回は基本的な使い方の説明です。
保存できる型一覧はこちら
Supported Types – Easy Save for Unity
調査開始してまずびっくりしたのが、Easy Save3とver2から3に上がっている事。
Easy Save2とはデータの互換性がないようです。
せっかくだからEasy Save3を使ってみよう。
※といっても今回のレベルでは関数がES2からES3になっている位でほとんど変わりがない感じでした
・「導入ガイド」を見て初歩的なセーブロードを行ってみます。
Getting Started with Easy Save 3 – Easy Save for Unity
以下の様にint型、float型、vector3型のロード/セーブを行います。
セーブ様のランダム値生成ボタンも作りました。
以下ソースコードになります。
PlayerPrefsと同じ様な使い勝手で簡単です。
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class easysavetest : MonoBehaviour { int SLInt; //SL:Save Loadの略 float SLFloat; //SL:Save Loadの略 Vector3 SLVector3; public Text text; // Use this for initialization void Start () { //EasySave使用に初期化は必要ありません } // データセーブ (ボタンで実行) public void Save_Test() { ES3.Save<int>("SLInt", SLInt); ES3.Save<float>("SLFloat", SLFloat); ES3.Save<Vector3>("SLVector3", SLVector3); TextDisp(); } // データロード (ボタンで実行) public void Loat_Test() { if (ES3.KeyExists("SLInt")){ //"SLInt"が存在しているか確認 SLInt = ES3.Load<int>("SLInt"); } else{ //存在していない場合は0 SLInt = 0; } if (ES3.KeyExists("SLFloat")){ //"SLInt"が存在しているか確認 SLFloat = ES3.Load<float>("SLFloat"); } else{ //存在していない場合は0f SLFloat = 0f; } if (ES3.KeyExists("SLVector3")){ //"SLVector3"が存在しているか確認 SLVector3 = ES3.Load<Vector3>("SLVector3"); } else{ //存在していない場合は0,0,0 SLVector3 = Vector3.zero; } TextDisp(); } //ランダムの値を発生させる (ボタンで実行) public void RandomValue() { SLInt = Random.Range(0,100); SLFloat = Random.Range(0.0f,100f); SLVector3 = new Vector3(Random.Range(0.0f,100f),Random.Range(0.0f,100f),Random.Range(0.0f,100f)); TextDisp(); } //テキスト書き換え void TextDisp() { string str; str = "Int型 = " + SLInt.ToString() + "\n" + "Float型 = " + SLFloat.ToString() + "\n" + "Vector3型 = " + SLVector3.ToString(); text.text = str; } }
unityのメニュー > Window > EasySave3 を選ぶとウィンドウが開きます。
そこでセーブデータフォルダを開いたり、セーブデータの消去を行えます。
・・・テキストエディタで内容確認はできるんだけど、もっとグラフィカルに確認する事はできないのだろうか
・SaveData.es3を開いてみた ※上の画像と保存されている内容は異なります
{“SLVector3”:{“__type”:”UnityEngine.Vector3,UnityEngine.CoreModule”,”value”:{“x”:4.569817,”y”:78.24599,”z”:18.18734}},”SLFloat”:{“__type”:”System.Single,mscorlib”,”value”:39.2764},”SLInt”:{“__type”:”System.Int32,mscorlib”,”value”:68}}
Easy SaveはUnityゲームエンジンのためのセーブ&ロードアセットです
なぜEasy Saveを使うのでしょうか?
簡単に使用でき、完全にドキュメント化されているので、アマチュアの方でも扱いが簡単です。また、
高速で、機能が豊富であり、非常にフレキシブルな点は、エキスパートの方でも満足してお使いいただけます。
特長:
– 高速で軽量
PlayerPrefs、JSON&XMLより高速
– PlayMakerとのインテグレーション
完全なPlaymakerサポート、コーディング不要
– ファイルIO、リーダーおよびライター
シリアル化の完全なコントロール
– 暗号による安全なセーブデータ
セーブデータを暗号化および難読化する
– ウェブからデータをセーブおよびロードする
PHP&MySQLを用いてアップロード&ダウンロード
– クロスプラットフォームのセーブ&ロード
セーブファイルおよびコードをすべてのプラットフォームで使用
– ほとんど任意のタイプをシリアル化
ビルトインおよびカスタムタイプをセーブ&ロード
– ビジュアルセーブファイルエディター
セーブファイ
ルをエディターから直接編集
– スプレッドシートを作成しセーブ
Excel、Numbersなどのために
– オンラインで完全にドキュメント化されています
ガイド、 サンプル、チュートリアル、 APIとともに
– カスタマーサポートに連絡
電子メール および専用フォーラム を通じて連絡
私どもに連絡 | FAQ | ドキュメンテーション | フォーラム
タグ: セーブ、ロード、シリアル化、playerprefs、ストレージ、アップロード、ダウンロード、ファイルのインポート、エクスポート、暗号、クラウド、excel、難読化、playerprefs