[過去ログ]
【3Dゲームエンジン】Unity総合スレッド31 [無断転載禁止]©2ch.net (1002レス)
【3Dゲームエンジン】Unity総合スレッド31 [無断転載禁止]©2ch.net http://mevius.5ch.net/test/read.cgi/gamedev/1503838978/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
640: 名前は開発中のものです。 [sage] 2017/12/15(金) 14:22:56.16 ID:bO73tzHJ >>631 気まぐれというよりは見落としがちな仕様の1つって感じかな? 他の不親切な開発環境だと、マニュアルの車運転んしてるみたいに最初からその辺り注意して作るが Unityは変に親切設計でオートマ車みたいな感じなのもあり 意識しないで作れるようになってるから俺には落とし穴だった。 その割には詳しく説明してるサイトは少ない気がした。 >>634 漠然とは明記されてたようだよw漠然とね >>637 説明みてても初心者向きではないわなw >>637 サンクス! この説明分に俺なりの補足いれると こうなる ↓ 実際のオブジェクト破壊は瞬時には行われません。 Destoryを記述した同一フレームのUpdateの最期に実行されます。 この動きはinstantiateも同じです。 よってFindでオブジェクトを検索する時は注意してください。 Findは同一フレームのUpdateの最初に実行されます。 Start()でinstantiateした場合Findを使用しても検索できない事になります。 http://mevius.5ch.net/test/read.cgi/gamedev/1503838978/640
641: 名前は開発中のものです。 [sage] 2017/12/15(金) 15:15:47.33 ID:oUFFIJn/ >>640 そもそもGameObject.Find()に依存した作りはお勧めしない Destroyに関しては一応DestroyImmediateという即時削除メソッドが定義されているが、エディタ拡張を作る目的以外の使用は推奨されない 素直にDestroyを呼んで待つべき Instantiateに関しては、Instantiateを実行した時点でインスタンスは存在する。ただしこれがヒエラルキーツリーに組み込まれるまでに遅延がある よって生成されたオブジェクトを即時初期化したい場合にはInstantiateの戻り値に対して操作を行うと良い また更に、AwakeやStartの処理が終わっていないオブジェクトのメソッドの呼び出しは推奨されない Awakeでの参照関係の解決やStartによる初期化が終わっていないと正しく動作しない可能性があるから プレハブ内で完結する操作ならInstantiateの戻り値に対して行えばいいが、それ以外は1フレーム待つのがいいと思う http://mevius.5ch.net/test/read.cgi/gamedev/1503838978/641
642: 名前は開発中のものです。 [sage] 2017/12/15(金) 15:20:26.78 ID:GfHyeVdP >>640 オブジェクトの生成破棄は時間かかる処理だからupdateの中でやられちゃ困る だからフラグだけ立てて処理を次に回すような処理を取ってる どこまでを初級者とするかってところはあるけども日本語で解説してる記事なんか山ほどある scriptでオブジェクトの生成破棄を操作するならよく引っかかる内容 コレが初級者向けじゃないってなると、初級者は自分でscriptをほとんど使わずに組み上げるレベルになるね http://mevius.5ch.net/test/read.cgi/gamedev/1503838978/642
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.034s