スポンサーリンク
スポンサーリンク
Unityアセット紹介

【Unity】簡単にセーブ機能を実装できるアセット【Easy Save3の使い方】

Unity

はじめに

Unityのゲーム開発では、プレイヤーの進行状況や設定を保存する機能が必要不可欠です。EasySave3はUnityで作ったゲームに保存機能を簡単に追加できるツールです。セール中だったので$34.50で購入することができました。

EasySave 3とは?

EasySave3を使うと、プレイヤーの進行度やスコア、設定などを簡単に保存・管理することができます。ゲームにセーブ機能を実装したいとき、簡単に実装することができます。

導入方法

UnityでEasySave 3を使い始めるには、まずUnity Asset Storeからアセットを購入し、プロジェクトにインポートする必要があります。

  1. Unityを開き、「Window」メニューから「Asset Store」を選択します。
  2. 検索バーに「EasySave 3」と入力し、検索結果からアセットを選択します。
  3. 「Buy」または「Download」ボタンをクリックして購入またはダウンロードします。
  4. アセットを購入したらほかのアセットと同じようにpackagemanagerからインポートします。

基本的な使い方

EasySave 3をプロジェクトに追加したら、次は基本的な使い方を学びましょう。

インポートが完了したらtools→Easy Save→add Manager to sceanをクリックします。

Easy SaveManagerというオブジェクトがシーンに追加されます。

データの保存と読み込みは、主に以下のように行います:

  • データの保存: ES3.Save("キー", 保存したいデータ);
  • データの読み込み: 変数 = ES3.Load<データ型>("キー");

ここで、「キー」とは保存するデータにつける名前のことで、このキーを使ってデータを識別します。「データ型」とは、保存・読み込みするデータの型(例:int、float、stringなど)を指します。

基本的なコード

プレイヤーのスコアを保存する簡単な例を見てみましょう:

// スコアを保存
int playerScore = 100;
ES3.Save("playerScore", playerScore);

// スコアを読み込み
int score = ES3.Load<int>("playerScore");

このコードは、プレイヤーのスコアを「playerScore」というキーで保存し、後でそのキーを使ってスコアを読み込んでいます。Tipsとトリックス

  • データの型を明確にする: ES3.Loadの際には、読み込むデータの型を正確に指定することが重要です。型が一致しないと、エラーが発生します。
  • デフォルト値の利用: データが存在しない場合に備えて、ES3.Loadメソッドにはデフォルト値を設定できます。これにより、エラーを防ぎつつ、スムーズなデータ処理を実現できます。

実際にセーブ&ロードする

こちらの記事のセーブ方法をplayerplafsからEasy Saveに変更してみました。

セーブの部分とロードの部分をES3.SaveとES3.Loadに書き換えるだけです。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

//TextMeshProを使うときに書く
using TMPro;

public class ScoreSave : MonoBehaviour
{
    public TextMeshProUGUI scoretext;
    public TextMeshProUGUI hiscoretext;

    int score;
    int hiscore;

    // Start is called before the first frame update
    void Start()
    {
        hiscore = ES3.Load<int>("Score");
        //ハイスコアにセーブされている数値を反映(ロード)する
        //hiscore = PlayerPrefs.GetInt("Score");

    }
    void Update()
    {
        //スコアの表示を変える
        scoretext.text = "Score:" + score;
        hiscoretext.text = "HiScore:" + hiscore;
    }

    public void getScore() 
    {
        //スコアを10増やす
        score = score+10;
    
    }

    public void Save() 
    {
        //スコアがハイスコアより高い場合セーブする
        if (score >= hiscore) 
        {
            ES3.Save<int>("Score", score);
            //PlayerPrefs.SetInt("Score", score);
            //PlayerPrefs.Save();
        }
    }
}

セーブしたファイルはtools→Easy Save→SettingsのtoolタブをクリックしてOpenPersistentDataPathをクリックすると保存してあるフォルダが表示されます。

セーブファイルはメモ帳等で確認できます。

セーブ場所はSettingsタブから変更することができます。

保存できる型はたくさんあるのでこちらのページで確認することができます。

データを消す

ES3.DeleteKey、
ES3.DeleteFile、
ES3.DeleteDirectory、
を使用してデータ、ファイル、、ディレクトリを消去することができます。

//ScoreというKeyで保存した値を削除
ES3.DeleteKey("Score");

//SaveFile.es3というファイルを削除
ES3.DeleteFile("SaveFile.es3");

//saveというディレクトリを削除
ES3.DeleteDirectory("save");

toolsタブのClear Persistent Data Pathをクリックするとセーブデータをクリアすることができます。

まとめ

この記事がUnityのEasySave3の基本的な使い方を理解する手助けになれば幸いです。もちろん、ここで紹介した内容は氷山の一角に過ぎません。EasySave 3のドキュメントやチュートリアルを参考に、さらに深く学び、自分のプロジェクトに適用してみてください。

スポンサーリンク
C-BA memo
タイトルとURLをコピーしました