Unity

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

スポンサードリンク
スポンサードリンク

2015/02/11

unity3d-3

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

スポンサーリンク

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

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

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

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

void Awake () {

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

}

[/code]

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

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

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

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

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

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

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

[amazonjs asin="4844364855" locale="JP" title="UnityゲームUI実践ガイド 開発者が知っておきたいGUI構築の新スタンダード"]
[amazonjs asin="4798138223" locale="JP" title="Unity5 3Dゲーム開発講座 ユニティちゃんで作る本格アクションゲーム (Smart Game Developer)"]

Unityアセットストアの人気ツール

スポンサードリンク
スポンサーリンク

-Unity
-

Copyright© さくらいらぼ /個人ブログ , 2021 All Rights Reserved.