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

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はゲームを作る上で意外と使うことが多いので、覚えておいて損はないと思います。

 

 

『Androidアプリのセキュア設計・セキュアコーディングガイド』解説DVD〈基礎編〉

広告を非表示にする