- 632 名前:名前は開発中のものです。 mailto:sage [2017/12/14(木) 23:45:13.38 ID:On7lkIBu.net]
- >>618
原因わかった今ならすっきりだが検証中は原因究明に本当に苦戦したよ 簡単にまとめると次のような処理 void func(){ @ for(〜){ Destoryでステージ上の全落ちてるアイテムを一旦削除 } A for(〜){ Instantiateで新しいアイテムをフィールドにばら撒く } B for(〜){ 新しくばら撒いたアイテムの中にあるスクリプトをGameObject.Findで呼び出しながら アイテムを初期化していく } } この処理がうまく機能していなかった。 原因は ・@のDestoryはvoid func(){}が終了しないと実際にゲームオブジェクトは削除されていない。 ・AのInstantiateも@と同じくこの時点で完了していないようだった ・結果Bでの検索はAで生成されたものではなく@で削除予定だったものが参照されていた これで新しいアイテムは全部正しく初期化されてなかった。 ゲームオブジェクト名でアイテムを識別して GameObject.Findの検索に使ってるという不幸も重なってのバグ
|

|