【3Dゲームエンジン】Unity総合スレッド31at GAMEDEV
【3Dゲームエンジン】Unity総合スレッド31 - 暇つぶし2ch632:名前は開発中のものです。
17/12/14 23:45:13.38 On7lkIBu.net
>>618
原因わかった今ならすっきりだが検証中は原因究明に本当に苦戦したよ
簡単にまとめると次のような処理
void func(){

 for(~){
  Destoryでステージ上の全落ちてるアイテムを一旦削除
 }

 for(~){
  Instantiateで新しいアイテムをフィールドにばら撒く
 }

 for(~){
  新しくばら撒いたアイテムの中にあるスクリプトをGameObject.Findで呼び出しながら
 アイテムを初期化していく
 }
}
この処理がうまく機能していなかった。
原因は
・①のDestoryはvoid func(){}が終了しないと実際にゲームオブジェクトは削除されていない。
・②のInstantiateも①と同じくこの時点で完了していないようだった
・結果③での検索は②で生成されたものではなく①で削除予定だったものが参照されていた
これで新しいアイテムは全部正しく初期化されてなかった。
ゲームオブジェクト名でアイテムを識別して
GameObject.Findの検索に使ってるという不幸も重なってのバグ


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch