Unity

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

スポンサーリンク

更新日:

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);
}
}

Unityのことでわからなくなってつまづいたらネットで聞いてみよう!

質問をすると答えてくれるQ&Aサイト「teratail(テラテイル)」ではUnityの質問が5000件以上あり、
毎日様々な質問が投稿されています。

Q&Aサイトなんてたくさんあるじゃないかと言われてしまいそうですが、
teratailの良いところはエンジニアが抱える問題の解決を全力でサポートするところ。
つまりプログラミング、エンジニアリングに特化している点です。

WordPressフォーラムよりも早く返答がくることもありますので、
わからなくなったことを溜め込まずにサクッと解決してしまいましょう。
WordPressの情報収集にもおすすめです。

>>エンジニアのためのQ&Aサイト【teratail】の詳細はこちら[公式サイト]

安定した仕事量と給与がもらえるWEBエンジニアをめざしているなら

レバレジーズテックで転職サポート


カテゴリ:

Unity

-Unity
-

Copyright© さくらいらぼ , 2018 All Rights Reserved.