LoginSignup
31
30

More than 3 years have passed since last update.

【Unity】簡単なセーブとロードの方法

Last updated at Posted at 2018-11-15

セーブ方法

Unityでセーブorロードを実現するのであれば一番楽なものはPlayerPrefsが最も楽だと思います。
Unity PlayerPrefsのリファレンス

Save.cs
        PlayerPrefs.SetInt("HP" , 10);
        PlayerPrefs.SetFloat("MP" , 10.0f);
        PlayerPrefs.SetString("名前","Unityちゃん");

PlayerPrefsでセーブをするにはこのように記述します。

Setする型 セーブデータの名前
Int HP 10
Float MP 10.0f
String 名前 Unityちゃん

int型のHPという名前の箱に10という値を保存
float型のMPという名前の箱に10.0fという値を保存
string型の名前という名前の箱にUnityちゃんという値を保存

注意

SetInt SetFloat SetStringは加える[+=]のではなく上書き[=]で保存されるので場合によっては

test.cs
//HP保存されていた値に+10して保存
PlayerPrefs.SetInt("HP",PlayerPrefs.GetInt("HP")+10);

このように記述しなければいけなくなります。
(他にも色々と方法はありますが今はこれで…)

ロード方法

先ほど保存したHP MP 名前を呼び出したいと思います。

Load.cs
        PlayerPrefs.GetInt("HP");
        PlayerPrefs.GetFloat("MP");
        PlayerPrefs.GetString("名前");

これで先ほど保存したHP(10) MP(10.0f) 名前(Unityちゃん)を取得することができます。

Getする型 セーブデータの名前 保存されていた値
Int HP 10
Float MP 10.0f
String 名前 Unityちゃん

PlayerPrefsで呼び出せるもの

自己解釈した内容で書きます。
ちゃんとした内容が見たい人はこちらから(Unity PlayerPrefsのリファレンス)

PlayerPrefs. 内容
SetInt 設定した名前に対する値を保存します
SetFloat 設定した名前に対する値を保存します
SetString 設定した名前に対する値を保存します
GetInt 設定した名前が存在すれば値を取得します
GetFloat 設定した名前が存在すれば値を取得します
GetString 設定した名前が存在すれば値を取得します
DeleteKey 設定した名前が存在すればそのデータを削除します
DeleteAll すべてのセーブデータを削除
HasKey 設定した名前のデータがあるか確認します
Save 使ったことないのでわからないです…

応用

セーブデータがあるか確認してから保存

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Test:MonoBehaviour
{
    string userName;    //ユーザーの名前
    private void Start()
    {
        //ユ―ザーネームがあるかチェック
        if (PlayerPrefs.HasKey("UserName"))
        {
            Debug.Log("ユーザーの名前があるよ!");
        }
        else
        {
            Debug.Log("ユーザーの名前がないよ!");

            //ない場合名前を入力させる処理をここから入れる
            //一時的に別の名前を入れるよ!
            PlayerPrefs.SetString("UserName", userName);
        }
    }
}

まとめ

今回の記事を応用したものがこちらになります、使い方がある程度理解できたかたはこちらもご覧ください。

31
30
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
30