ExtPlayerPrefs クラスを用いたプリミティブ(基本データ)型の保存・読み出し

2024年12月4日

以下は、初心者向けに「ExtPlayerPrefs クラス」を利用した整数や文字列などの基本データ型を保存・読み出しするための技術資料です。

1. 概要

ExtPlayerPrefs クラスは、Unityでゲームデータや設定データをファイルとして保存・読み出しするための便利な仕組みを提供します。この資料では、初心者向けに整数や文字列の保存・読み出し方法をわかりやすく解説します。


2. 基本的な使用例

2.1 整数データの保存と読み出し

コード例

// 整数データを保存
int score = 100;
ExtPlayerPrefs.Save(score, "score.json");

// 整数データを読み出し
int loadedScore = ExtPlayerPrefs.Load<int>("score.json");
Debug.Log($"読み込んだスコア: {loadedScore}");

ポイント

  • スコアや設定値など、数値データをファイルに簡単に保存できます。
  • データはJSON形式で保存されるため、テキストエディタで確認可能です。

2.2 文字列データの保存と読み出し

コード例

// 文字列データを保存
string playerName = "Hero";
ExtPlayerPrefs.Save(playerName, "playerName.json");

// 文字列データを読み出し
string loadedPlayerName = ExtPlayerPrefs.Load<string>("playerName.json");
Debug.Log($"読み込んだプレイヤー名: {loadedPlayerName}");

ポイント

  • プレイヤー名やテキスト情報をファイルに保存・管理できます。
  • 保存されたファイルを共有することで、設定値を外部から変更することも可能です。

3. セキュリティを高める:暗号化の利用

3.1 暗号化を使った保存と読み出し

コード例

// 保存(暗号化付き)
string secretMessage = "This is a secret!";
string password = "mypassword"; // 暗号化用パスワード
ExtPlayerPrefs.Save(secretMessage, "secretMessage.json", password);

// 読み出し(復号化付き)
string loadedSecretMessage = ExtPlayerPrefs.Load<string>("secretMessage.json", password);
Debug.Log($"復号化されたメッセージ: {loadedSecretMessage}");

ポイント

  • 暗号化機能を利用することで、保存データを第三者から守ることができます。
  • 暗号化・復号化には同じパスワードを使用する必要があります。
  • セキュリティが必要なデータ(例: APIキー、認証情報)におすすめ。

4. 保存先の確認

保存されたファイルの場所

保存先のパスは、Unityの Application.persistentDataPath を基準としています。プラットフォームによって保存場所が異なるため、デバッグ時に確認すると便利です。

コード例

string filePath = Application.persistentDataPath + "/score.json";
Debug.Log($"保存ファイルの場所: {filePath}");

プラットフォームごとの保存先例

プラットフォーム保存先パス
Windows%USERPROFILE%\AppData\LocalLow\
Android/data/data/<package-name>/files
macOS~/Library/Application Support/

5. 初心者向けワンポイントアドバイス

  1. デバッグログで確認する
    データ保存後はUnityのコンソールにログを出力して動作確認を行いましょう。
   Debug.Log($"保存されたデータ: {score}");
  1. ファイル名は分かりやすく
    保存するファイル名は用途が分かるようにしましょう(例: score.jsonsettings.json)。
  2. 暗号化パスワードの管理
    暗号化を利用する場合、パスワードを忘れると復号化できなくなるため、注意してください。

6. まとめ

ExtPlayerPrefs クラスを使えば、簡単にデータを保存・読み出しすることができます。以下に、本資料の特徴をまとめます:

用途実現方法
数値や文字列の保存Save<T> メソッドを使用してJSON形式で保存。
数値や文字列の読み出しLoad<T> メソッドを使用してデータを取得。
セキュリティ向上暗号化オプションを利用してデータを安全に保護。
保存先の確認Application.persistentDataPath で保存場所をチェック可能。

活用例

  • スコア管理: int score を保存してランキング表示に利用。
  • プレイヤー設定: string playerName を保存してプロフィールに使用。
  • 機密データ管理: パスワードやAPIキーを暗号化して保存。

ぜひ、自分のプロジェクトで試してみてください!

C#,Unity

Posted by hidepon