【Unity】シーンが変わるときに変数の引き継ぎをしたい。DontDestroyOnLoadでシーンを変えてもゲームオブジェクトを消さない

スポンサードリンク

■プログラミングを学ぶのに最適です。無料体験あり!!現役エンジニアのパーソナルメンターがつき、躓いているときはチャットでの質問ができてすぐに回答が帰ってくる頼もしいサービスです。自分も12週間がっつり勉強してアプリを出せました。
未経験から仕事に繋がるエンジニア・デザイナーになりたいなら

[`evernote` not found]
Pocket
LINEで送る

unity3d-3

シーンが変わるときに変数の引き継ぎをしたい。
Application.LoadLevelでシーンを切り替えたときにはすでにあったゲームオブジェクトをすべて消してから
新しいシーンのゲームオブジェクトを読み込むので、ゲームオブジェクトに用意した変数が引き継げません。

スポンサーリンク

DontDestroyOnLoadを使うとApplication.LoadLevelでシーンを切り替えたときに消えずに済みます。
シーンが変わるときにDontDestroyOnLoadを呼び出すゲームオブジェクトに変数を入れておけばOKなようです。

ゲームオブジェクトが消えないと次々シーンが変わるときに、一つずつ増えていってしまうので
DontDestroyOnLoadを呼び出すゲームオブジェクトの有無を確認してあれば作らない処理を入れます。

以下のスクリプトを作成して
アクションさせたいゲームオブジェクトにAdd componentします。
ソースはC#です。

//有無のチェックフラグ
private static bool created = false;
//引き継ぎ用変数
public int stagedata;

void Awake () {

		if(!created){
			DontDestroyOnLoad (this.gameObject);
			created=true;
		}else{
			Destroy(this.gameObject);
		}

}

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


[`evernote` not found]
Pocket
LINEで送る


スポンサードリンク

このサイトが役に立ったらシェアにご協力ください

  • このエントリーをはてなブックマークに追加