タイトル>ゲーム>タイトル>ゲーム
の繰り返しをするとして、ゲーム中に変更したオプションなんかを、一度タイトルに戻った後でも継続して持っていたい!
というわけで、調べたら(ちょっとどのサイトだったか忘れた)、ありました。
DontDestroyOnLoad (this);
これをしておけば、LoadLevelした時に、スクリプトがアサインされているオブジェクトが消えません。
//ObjAはインスタンス化しておく
--ObjA
-scriptA
function Awake(){
DontDestroyOnLoad (this);
}
やったー!
って・・・
ロードするたびにオブジェクトが増える!
というわけで、一工夫。
先ほどのオブジェクト(ObjA)をプレハブ化しておき、別のオブジェクトのスクリプトからロード時に呼び出させます。
--ObjB
-scriptB
var objA :GameObject; //InspectorでObjAを登録しておく
if(GameObject.Find("/ObjA(Clone)") == null){ //(Clone)で探す
Instantiate(ObjA, Vector3(0,0,0), Quaternion.identity);
}
これで、シーンがロードされるたびに、壊したくないオブジェクトがあるか無いか判断して、あったら作りません。
ここで注意は(Clone)を付けておくっていうこと。
if文がいつまでたってもtrueにならなくて困りました。
2014年12月15日月曜日
登録:
コメントの投稿 (Atom)
0 コメント:
コメントを投稿