シーンを跨いでゲームオブジェクトを使用する(Unity)

NO IMAGE

BGMを鳴らし続けたい時やスコアの保持など、シーンを跨いで同じゲームオブジェクトを使いたいことがあります。

シーンが変わってもゲームオブジェクトが破棄されないようにするには、下記のコードで簡単に出来ます。

function Awake () {

DontDestroyOnLoad (this.gameObject);

}

ただし、上記の場合、同じシーンをロードすると再度ゲームオブジェクトが生成されてしまいます。

ゲームオブジェクトが複数生成されるのを防ぐには、下のように生成フラグを使うことで可能です。

private static var created =false;


function Awake () {

if(!created){

DontDestroyOnLoad (this.gameObject);

created=true;

}else{

Destroy(this.gameObject);

}

}

DontDestroyOnLoadはゲームを作る上で意外と使うことが多いので、覚えておいて損はないと思います。