シーンはApplication.LoadLevelで移動することができる。
複雑なゲームを一つのシーンに仕込むと制御が大変なので、
ゲームシステム毎にシーンを分けて管理すると思う。
で、ここで問題。
シーンを移動するとゲームオブジェクトを破棄してしまうので、
今までのスコアやパラメータが保持できない。
そこらへんの小技。
■GameObjectを破棄しないようにする
とりあえず破棄されないようにする。
DontDestroyOnLoad((gameobject);
で、オブジェクトが破棄しなくなる。
シーン開始時にパラメータを管理しておくオブジェクトを作成しておき、
DontDestroyOnLoadを指定しておけば、この先も破棄されずに残る。
破棄されないので、アドアプリ等の表示時間が関わってくるものは
DontDestroyOnLoadしておいたほうが良いかもしれない。
■引数付きでシーン呼び出す
上の処理を応用。
まずstaticなメソッドを用意しておき、中で自身のオブジェクトを作成。
その後、必要なパラメータを入れておく。
パラメータ付きオブジェクトのStart時にApplication.LoadLevel。
移動後はシーンのオブジェクトに値を入れて、自身を削除する。
ちなみに呼び出しは
ADVSystemLoad.Load("script1");
といった感じで行う。
少しだけすっきり。
なおメソッドコールの順番には注意。