前往
大廳
主題

情報の保存とセーブデータ

當我玩家都王八蛋? | 2023-09-10 00:16:28 | 巴幣 0 | 人氣 79

いくつかの日数が経過し、プレイヤーデータの保存と読み込みが成功しました。
以前にPlayerPrefsを使用して簡単なプレイヤーデータを保存し、シーンの切り替えとプレイヤー情報の読み込みを実現する方法を説明しましたが、PlayerPrefsは主にプレイヤーの設定情報を保存するためのもので、INT、FLOAT、STRINGの3つのデータ型しか保存できません。データの量や複雑さが高まると、他の方法でデータを保存する必要があります。一般的なシリアル化保存方法にはXML、JSON、BinaryFormatterなどがありますが、今回学んだのはより汎用的なJSON形式です。

具体的な方法は、UNITY内でプレイヤーのデータをJSON形式のデータに変換し、コンピュータに保存するために組み込みのAPIを使用することです。読み込む際には、これらのデータを逆シリアル化し、ゲームに反映させます。

SAVE: プレイヤーデータ→シリアル化(JSON)→ローカルに保存LOAD: ローカルデータ→デシリアル化→ゲームに適用

現在、私のゲームでは、プレイヤーの位置、サイズ、形状、HP、ステージの5つのデータを保存する必要があります。したがって、最初のステップはこれらのデータをプレイヤーから読み取り、JSON形式で保存することです。まず、保存するデータを定義するためのスクリプトを作成します。
データをシリアル化する必要がある場合、最初に[System.Serializable]をデータの上に記述して、そのデータがシリアル化可能であることを示す必要があります。

次に、新しいスクリプトを作成し、System.IOを使用して、データを書き込むための関数とデータを読み取るための関数を2つ作成します。デバッグログを記録して、ファイルが保存および読み込まれたことを確認しましょう。
次は、これらの関数をUIボタンにアタッチしてテストする段階です。
「Save」ボタンを押すと、プレイヤーデータがJSONファイルとして作成されます。
図中の中央部分のように、ファイルを開くとデータが特定の形式でテキスト化されて保存されています。
このようにデータが保存されていますが、実際にデータを読み込む際には、読み込んだデータをゲームに反映させるためのプログラムも書く必要があります。たとえば、プレイヤーの位置を読み込んだ場合でも、最終的にはプレイヤーの位置をデータから読み取った位置に設定する関数を書く必要があります。
このように

最終效果:
ただし、これは同じシーン内での読み書きに過ぎません。明日、クロスシーンの保存について詳しく説明します。おやすみなさい。

創作回應

更多創作