Unityの寺子屋 定番スマホゲーム開発入門 その8
Chapter3 放置ゲームに演出を加えよう
今日でChapter3が終わりました。次のChapterも放置ゲームのブラッシュアップですが、どのような機能を持たせるのか楽しみです。
5節 スコアデータを保存する
ゲームということでデータをセーブすることは欠かせません。JavaFXでゲームを制作していた頃は、テキストファイルに出力してスコアを管理していました。今はJavaFXはお休み中です。ですが、いつか再開したいと思います。
Unityではデータの管理は「PlayerPrefs」というクラスを使います。
例えば、プレイヤのHPを保存し、保存されてあるプレイヤのHPを取得したいときには次のように書きます。
PlayerPrefes.SetInt("playerHP", 100); tempPlayerHP = PlayerPrefes.GetInt("playerHP", 50);
1行目のコードでHPを保存していますが、二番目の引数でHPを100として保存しています。2行目では、「playerHP」というキーを元にして保存してあるHPの値を取得していますが、キーに対応するデータがない場合、2番目の引数が使用されます。
放置ゲームなので、スコアの管理の他に時間の管理も必要です。この本では、次のように時間を管理しています。
PlayerPrefs.SetString(KEY_TIME, lastDateTime.ToBinary().ToString()); // 時間の復元 string time = PlayerPrefs.GetString(KEY_TIME, ""); if(time == "") { // 時間がセーブされていない場合は現在時刻を使用 lastDateTime = DateTime.UtcNow; }else{ long temp = Convert.ToInt64(time); lastDateTime = DateTime.FromBinary(temp); }
lastDateTimeはゲームを終了させたときの時刻で、DateTime型です。PlayerPrefsはDateTime型に対応していないので、バイナリ値に変換して保存します。
- 作者: いたのくまんぼう,大槻有一郎
- 出版社/メーカー: エムディエヌコーポレーション
- 発売日: 2017/08/16
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る