シーンはApplication.LoadLevelで移動することができる。

複雑なゲームを一つのシーンに仕込むと制御が大変なので、
ゲームシステム毎にシーンを分けて管理すると思う。

で、ここで問題。

シーンを移動するとゲームオブジェクトを破棄してしまうので、
今までのスコアやパラメータが保持できない。
そこらへんの小技。


■GameObjectを破棄しないようにする

とりあえず破棄されないようにする。

DontDestroyOnLoad((gameobject);
で、オブジェクトが破棄しなくなる。

シーン開始時にパラメータを管理しておくオブジェクトを作成しておき、
DontDestroyOnLoadを指定しておけば、この先も破棄されずに残る。

破棄されないので、アドアプリ等の表示時間が関わってくるものは
DontDestroyOnLoadしておいたほうが良いかもしれない。


■引数付きでシーン呼び出す

スクリーンショット 2012-03-22 0.15.49

上の処理を応用。

まずstaticなメソッドを用意しておき、中で自身のオブジェクトを作成。
その後、必要なパラメータを入れておく。

パラメータ付きオブジェクトのStart時にApplication.LoadLevel。
移動後はシーンのオブジェクトに値を入れて、自身を削除する。

ちなみに呼び出しは
ADVSystemLoad.Load("script1");
といった感じで行う。

少しだけすっきり。

なおメソッドコールの順番には注意。



フォローボタン