これは、unity の世界で初めてテストした 2D ゲームのメイン メニューです。
ハイスコアを保存したいのですが、プレイヤーが「ベスト スコア」ボタンを押した場合は、これまでで最高のスコアを表示したいと考えています ^^ そのため、外部ファイルを使用してこの種の情報を保存し、実行時に開く必要があると思います時間...どのように?それを実行するのに最適なファイルの種類は何ですか?
これは、unity の世界で初めてテストした 2D ゲームのメイン メニューです。
ハイスコアを保存したいのですが、プレイヤーが「ベスト スコア」ボタンを押した場合は、これまでで最高のスコアを表示したいと考えています ^^ そのため、外部ファイルを使用してこの種の情報を保存し、実行時に開く必要があると思います時間...どのように?それを実行するのに最適なファイルの種類は何ですか?
上記の答えに加えて:
ただし、PlayerPrefs は、カスタムの型とコレクションを、それらの型を文字列やその他のデータにキャストしない限り、処理および保存しません。必要なデータを JSON に変換し、JSON 文字列を PlayerPrefs に保存してから、再び必要になったときにそのデータを取得して解析することは非常に便利です。これを行うと、別の複雑なレイヤーが追加されますが、保護の別のレイヤーとデータ自体を暗号化する機能も追加されます。また、Unity のドキュメントによると、Web Player は現在、PlayerPrefs に制限がある唯一のプラットフォームです。
Web プレーヤー URL ごとに 1 つの設定ファイルがあり、ファイル サイズは 1 メガバイトに制限されています。この制限を超えると、SetInt、SetFloat、および SetString は値を格納せず、PlayerPrefsException をスローします。
ソース: http://docs.unity3d.com/Documentation/ScriptReference/PlayerPrefs.html
書き込み:
PlayerPrefs.SetInt("score",5);
PlayerPrefs.SetFloat("volume",0.6f);
PlayerPrefs.SetString("username","John Doe");
// Saving a boolean value
bool val = true;
PlayerPrefs.SetInt("PropName", val ? 1 : 0);
PlayerPrefs.Save();
読む:
int score = PlayerPrefs.GetInt("score");
float volume = PlayerPrefs.GetFloat("volume");
string player = PlayerPrefs.GetString("username");
bool val = PlayerPrefs.GetInt("PropName") == 1 ? true : false;
最も簡単な解決策は、PlayerPrefsを使用することです。スペースが限られており、保存できるデータのセット (int、float、string) は小さいですが、単純なゲームには十分です。
より多くのスペースまたはより複雑なデータ構造を保存する必要がある場合は、それらをファイル システム自体 (またはバックエンド サポートがある場合はサーバー) に保存する必要があります。Unity は、これに対する組み込みサポートを提供していません。