謎の歩行生物(仮)【PART38】~シーン切り替え時にデータを破棄させない~

LINEで送る
Pocket

001

今回はプレイヤーの残機の処理、そしてチェックポイントからの再開の処理を作っていきます。

前回も少しだけ解説しましたが、Unityはシーンの切り替え時に全てのオブジェクトを破棄します。ということは、シーンを切り替えてしまうと前のシーンの情報は残っていないということです。ゲームにはスコアやベストタイム、クリア状況などのデータだけでなく、全シーン共通で行うような処理が必ずあります。今回行うのは、それらの情報をシーンを跨いで共有するための処理となります。

 

シーンを跨いでデータを共有する処理は色々とありますが、今回私は下記のサイトを参考にさせていただいて実装しました。

[Unity]最もシンプルなSingletonパターン

004

超シンプル。このスクリプトをオブジェクトに入れると、そのオブジェクトはシーンを切り替えても破棄されず、残り続けます。

005

どのシーンでも残しておきたいスクリプトを、このオブジェクトのコンポーネントに入れるか、オブジェクトを子にするだけでOK。

ちなみにゲーム実行中、ヒエラルキービューにはこのように表示されます。

003

あとは、このオブジェクトに残機の値やチェックポイントを通過したかのフラグを置いて、シーン読み込み時にそこを参照するようにすれば、シーンを跨いでも大丈夫になりました。

1点気を付けることは、この破棄されないオブジェクトに入っているスクリプトは、ずっとあり続けているわけですからStart関数が呼び出されるのは最初の1回だけです。シーンを跨いだ後には呼び出されないようなので、その辺は注意かもです。

 

ひとまずチェックポイントと残機の処理が出来たので、細かい点を色々と修正しつつ、ボタンのUI周りを作り直していきます。

 

スポンサーリンク

スポンサーリンク

LINEで送る
Pocket