[過去ログ] 【3Dゲームエンジン】Unity質問スレッド29 [無断転載禁止]©2ch.net (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
389(3): 名前は開発中のものです。 [sage] 2017/06/16(金) 22:00:19.70 ID:OyCZvXKK(1) AAS
あらかじめインスペクタでアタッチするのと、AwakeとかでFind&GetCommentのとではどっちが効率いいんだろう
400(2): 390 [sage] 2017/06/17(土) 07:24:43.63 ID:89HwilAC(1/3) AAS
>>394俺の言ってるのは>>389についてケースバイケースって事な
Update()内でのFindの話はしてない
402(2): 名前は開発中のものです。 [sage] 2017/06/17(土) 10:36:34.45 ID:pfeoMtxp(1/2) AAS
>>400
横からですまんけど、どうケースバイケース?
単にD&Dが好きかコード書くのが好きかみたいな手段の話?
それとも負荷の話ではある?>>389は負荷のつもりだと思うけど(知らんけど)
462(1): 名前は開発中のものです。 [sage] 2017/06/18(日) 20:13:48.96 ID:q1X0lAjX(5/5) AAS
>>459459(2): 名前は開発中のものです。 [sage] 2017/06/18(日) 19:51:28.51 ID:Ga9T3hxB(5/9) AAS
>>456
いやランタイム時の参照をどう持つかのお話なので
Unityエディタ上でコンポーネントのプロパティの設定(と無い場合はAddComponent)を
自動化してるか手動でやるかのあなた話は、議論している箇所が違うんですよね…
煽ってるわけではないので気を悪くしないでね
最初の問い(>>389)はランタイム時の効率についての話しだが、それについてはFindのほうがオーバーヘッドが大きいよねと概ねコンセンサスは出来てるだろう
(直接、Find系とインスペクタ参照で速度比較したデータが示されていないけど)
で、>>424424(3): 名前は開発中のものです。 [sage] 2017/06/18(日) 10:23:18.25 ID:XAVbtWpl(1/3) AAS
>>418
ケースバイケース君と俺は別人だが俺が書いた>>379から派生してグダッてるみたいなので基本方針を示しておく
1. Findは基本的に使用禁止
文字列引数による検索は実行時エラーの温床となるので避けるべき、インスペクタ上でオブジェクトの名前を変えられただけでコケるとか怖すぎる
またヒエラルキーツリーを全部舐める様な処理を多用するのはパフォーマンス的にも好ましくない
2.インスペクタ上で参照がセットされていることを前提にした構造は可能な限り避ける
シーンファイルを誤って変更された時に、インスペクタ上で探して修正するのは面倒。特にシーン内のオブジェクトが複雑に絡み合った参照関係を持つなどは論外
もしどうしてもこれが避けられない場合はオブジェクトをプレハブ化してプレハブ内での参照に限定することで問題のスコープを小さく保つ
上記ルールに沿って作れないならそれは設計が悪いので設計を見直す、疎結合を徹底するべし
必要ならCamera.mainなどの様なstatic経由での参照の受け渡しや、シングルトンなマネージャークラスの導入を検討する
※多用は厳禁、後者はScript Execution Orderを正しく設定すること
ヒエラルキーツリーやインスペクタでの変更に弱いコードはメンテナンス性が低く、こうした変更による問題が発生した場合の問題箇所の検出が非常に困難になるので避ける様にするといい
でランタイム時の効率だけでなくメンテナンス性にも話題が広がったので、複雑な参照関係はエディタ拡張スクリプトで自動化しておくと効率面でもメンテナンス面でも有益なことが多いよね、となった
なんかおかしいかな?
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.056s