[Unity]簡単なデータの保存
ハイスコアなどの単純な変数を保存したい場合、ファイル操作などの複雑な手順なしにデータを保存できます
シーンの構成
現在のシーンに追加してみましょう
コード
プログラムを実行、保存作業した後、実行停止して再実行してみましょう
読み出した時、保存した値が表示されるのを確認しましょう
using UnityEngine;
public class DataSaveLoad : MonoBehaviour
{
void Update()
{
if (Input.GetKeyDown(KeyCode.S))
{
PlayerPrefs.SetInt("PlayerHp", 10);
PlayerPrefs.Save();
}
if (Input.GetKeyDown(KeyCode.L))
{
int hp = PlayerPrefs.GetInt("PlayerHp");
Debug.Log(hp);
}
}
}
コード説明
キーに対応する値のセット
PlayerHpというキーで整数10をセットします
PlayerPrefs.SetInt("PlayerHp", 10);
データの保存
セットしたデータを保存します
PlayerPrefs.Save();
読み出し
PlayerHpというキーのデータを取得します
int hp = PlayerPrefs.GetInt("PlayerHp");
その他のメソッド
PlayerPrefsの説明
`PlayerPrefs`は、ゲームセッション間でプレイヤー設定を保存するクラスです。文字列、浮動小数点数、整数値をユーザーのプラットフォームレジストリに格納できます。
Unityは、アプリケーションが実行するオペレーティングシステムに基づいて、`PlayerPrefs`データを異なる方法で保存します。このページで指定されたファイルパスでは、会社名と製品名はUnityのプレイヤー設定で設定した名前です。
スタンドアロンプレーヤーのストレージ場所
macOSでは、PlayerPrefsは~/Library/Preferences/com.ExampleCompanyName.ExampleProductName.plist
に保存されます。Unityは、エディタとスタンドアロンプレイヤーのプロジェクトに同じ.plistファイルを使用します。
Windowsでは、PlayerPrefsはHKCU\Software\ExampleCompanyName\ExampleProductName
キーに保存されます。
Linuxでは、PlayerPrefsは~/.config/unity3d/ExampleCompanyName/ExampleProductName
に保存されます。
Windowsストアアプリでは、PlayerPrefsは%userprofile%\AppData\Local\Packages\[ProductPackageId]\LocalState\playerprefs.dat
に保存されます。
Windows Phone 8では、UnityはPlayerPrefsデータをアプリケーションのローカルフォルダに保存します。詳細については、Directory.localFolderを参照してください。
Androidでは、PlayerPrefsは/data/data/pkg-name/shared_prefs/pkg-name.v2.playerprefs.xml
に保存されます。Unityは、PlayerPrefsのデータをSharedPreferencesにデバイスに保存します。C#、JavaScript、Android Java、ネイティブコードはすべてPlayerPrefsデータにアクセスできます。
WebGLでは、UnityはブラウザのIndexedDB APIを使用して最大1MBのPlayerPrefsデータを保存します。詳細については、IndexedDBを参照してください。
エディタ内再生モードのストレージの場所
macOSでは、PlayerPrefsは/Library/Preferences/[bundle identifier].plist
に保存されます。
Windowsでは、PlayerPrefsはHKCU\Software\Unity\UnityEditor\ExampleCompanyName\ExampleProductName
キーに保存されます。Windows 10は、アプリケーションのPlayerPrefs名を使用します。たとえば、UnityはDeckBase
文字列を追加し、DeckBase_h3232628825に変換します。アプリケーションは拡張機能を無視します。
Unityは、暗号化なしで、PlayerPrefsをローカルレジストリに保存します。PlayerPrefsデータを使用して機密データを保存しないでください。
静的メソッド
DeleteAll | 環境設定からすべてのキーと値を削除します。注意して使用してください。 |
DeleteKey | 指定されたキーをPlayerPrefsから削除します。キーが存在しない場合、DeleteKeyは影響しません。 |
GetFloat | 存在する場合は、環境設定ファイルのキーに対応する値を返します。 |
GetInt | 存在する場合は、環境設定ファイルのキーに対応する値を返します。 |
GetString | 存在する場合は、環境設定ファイルのキーに対応する値を返します。 |
HasKey | 指定されたキーがPlayerPrefsに存在する場合はtrueを返し、そうでない場合はfalseを返します。 |
Save | 変更されたすべての設定をディスクに書き込みます。 |
SetFloat | 指定されたキーで識別される環境設定の浮動小数点数を設定します。PlayerPrefs.GetFloatを使用して、この値を取得できます。 |
SetInt | 指定されたキーで識別される環境設定の単一の整数値を設定します。PlayerPrefs.GetIntを使用して、この値を取得できます。 |
SetString | 指定されたキーで識別される環境設定の単一の文字列値を設定します。PlayerPrefs.GetStringを使用して、この値を取得できます。 |
保存場所の確認手順
デバッグ時にエディターからすべてのPlayerPrefsデータを消す方法
Editメニューから削除することができます
テストした時に一度消してやり直したい時などに使います
ディスカッション
コメント一覧
まだ、コメントがありません