データ保存(セーブ)機能を実装しよう!
今回は、データ保存機能を実装します。
データ保存機能とは、ゲームを終了しても、保存してあるデータを読み込み続きからゲーム行うことができます。
基本的にどんなゲームを作る際でも必ず必要な機能になるので、しっかりと覚えましょう!
PlayerPrefsを使ってデータ保存できるようにしよう!
PlayerPrefsとは
ゲームデータのセーブやロードを行えるようにするものです。
今回はセーブ機能の解説をしますが、PlayerPrefsを使うことで下記のようなこともできます。
Static 関数
DeleteAll | 設定情報からすべてのkeyと値を削除 |
DeleteKey | 設定情報からkeyと対応する値を削除 |
GetFloat | keyが存在する場合、keyに対応する値を取得(Float型) |
GetInt | keyが存在する場合、keyに対応する値を取得(Int型) |
GetString | keyが存在する場合、keyに対応する値を取得(String型) |
HasKey | keyが設定に存在した場合、trueを返す |
Save | 変更された値をディスクへ保存 |
SetFloat | keyで識別される設定される設定情報の値を設定(Float型) |
SetInt | keyで識別される設定される設定情報の値を設定(Int型) |
SetString | keyで識別される設定される設定情報の値を設定(String型) |
スクリプトを作成
今回は、PlayerPrefsを使ってデータ保存ができるようにします。
Assets→Create→C#Script
今回のスクリプトはゲームを管理するスクリプトなので、スクリプト名はGameManagerにします。
GameManagerスクリプト
|
GameObjectを追加
GameManagerスクリプトを作成しましたが、Assetsフォルダ内にあるだけでは使えないので、使うためのオブジェクトを追加します。
Hierarchy→Create Empty
GameObjectにGameManagerスクリプトをドラックアンドドロップして追加します。
これで準備が整いました。
実行結果
1度目の実行では、デバックログにNo dataと表示されます。
2度目の実行では、1度目にHave Dataを設定しているのでHave Dataと表示されます。
これでデータ保存機能の実装ができました。
配列でやってみる!
スクリプトを変更
配列でやるためにGameManagerスクリプトを少し変更します。
GameManagerスクリプト
|
実行結果
1度目は何のデータも入っていないのですべてNo dataになります。
2度目は、1度目にHave Dataと配列を設定しているのでHave Dataと配列に値が代入されたものが表示されます。
まとめ
今回は、データ保存機能を実装しました。
基本的にどんなゲームを作る際でも必ず必要な機能になるので、しっかりと覚えましょう!
コメント