###前提・実現したいこと
ゲームオブジェクトを破棄した後、直ちにnullにならないようなので、
nullチェックをどのようにすればいいかわかりません。
ゲームオブジェクトを破棄した後、「if (obj != null) { 処理 }」という処理を
したいのですが、破棄したはずのゲームオブジェクトもこのif文に引っかかってしまいます。
また、ゲームオブジェクトの破棄はループで回してる中で行いたいと思っています。
ご教授のほど宜しくお願いします。
C#
1GameObject obj = GameObject.FindGameObjectWithTag ("Cube"); 2GameObject.Destroy (obj); 3Debug.Log (obj == null); //false 4Debug.Log (obj != null); //true
###試したこと
Object.DestroyImmediateというメソッドを使えば、直ちに破棄されるみたいですが、
これを使うには抵抗を感じます。
マニュアルに以下のことが書かれている為。
・Destroy関数の方を使うことを推奨します。 ・配列の繰り返し処理中にオブジェクトを破棄することは控えてください。 → 配列の繰り返し処理中にオブジェクトを破棄するコードを組みたい為。
マニュアルを見てわからないこと。
・破壊が遅れた場合、エディターコードを書き込むときのみ、この関数を使わなければなりません。 →「エディターコードを書き込むとき」はどんなときか?エディターコードとは? ・恒久的にアセットを破壊できるので、この関数は注意して使用してください。 → 恒久的にアセットを破壊とは? 「恒久的 → 永久に変わらないさま」。例えば、恒久的じゃないアセットの破壊ってあるのか? アセットの破壊とは、アセットの削除?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/12/04 11:31