- ベストアンサー
Unity シーン移行後のスコアの呼び出し方
質問失礼します。 現在Unityでゲームを制作しているのですが、分からない点が有るため質問させて頂きます。 オブジェクトを破壊してスコアを表示する感じのゲームを作っています。 スタート画面 ↓ ゲーム本編 ↓ リザルト ↓ スタート画面(に戻ってくりかえし) という流れなのですが、ゲーム本編からリザルトに移動する時、シーンをまたぐのでスコアが消えてしまいます。ゲーム本編で得たスコアを呼び出してリザルトで表示するにはどうすれば良いでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
ちょっと泥臭い実装になるが、スタート画面の前にGameManagerのような名前の隠しシーンを作り、 Level0:GameManager(←このゲームを起動した時に最初に呼ばれるシーン) Level1:スタート画面 Level2:ゲーム本編 Level3:リザルト という形にして、GameManagerは適当な空のGameObjectをシーンに入れてそれをGameObject.DontDestroyOnLoad()するスクリプトを割り付ける。その中にスコアとかも記録する。GameManagerシーンはDontDestroyOnLoadしたらすぐLoadLevel(1)してスタート画面シーンに飛ぶ。という風にする事でシーンをまたがったグローバル変数的に使う事ができる。 それかゲーム本編でPlayerPrefs.SetIntしてリザルトにシーンを切り替えて、リザルトではPlayerPrefs.GetIntするか。こっちの方が順当かも知れない。 ゲームが終了したら消されるべき情報は前者で、次回起動したときも覚えておきたい情報は後者で、と使い分けるのがベストかな。
お礼
ご回答ありがとうございます。 お礼が遅れましてすみませんでした。 参考になりました!