Unity初心者の俺が調べたことをメモするスレ (99レス)
Unity初心者の俺が調べたことをメモするスレ http://mevius.5ch.net/test/read.cgi/gamedev/1693399963/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
65: 名前は開発中のものです。 [sage] 2023/09/20(水) 22:16:05.72 ID:6f4RNUvQ >>63-64 必要ならキャッシュしておいた方がいい、との記述はあるものの https://learn.microsoft.com/en-us/windows/mixed-reality/develop/unity/performance-recommendations-for-unity?tabs=openxr 色々な人の検証結果を見る限りはGetComponentを1フレーム内で数万回繰り返しても、処理時間はそれ自体ではぶっちゃけ殆ど差が出ないみたいだね そう考えると実はUpdate内で毎度呼び出しても現実的なボトルネックにはならないんだろうね ある意味「GetComponentは重いぞ神話」が独り歩きしている状況かもしれない 自分は基本的にその場限りで利用する場合以外はキャッシュするけども http://mevius.5ch.net/test/read.cgi/gamedev/1693399963/65
66: 名前は開発中のものです。 [sage] 2023/09/20(水) 22:21:25.16 ID:6f4RNUvQ 代わってGameObject.Find系は本当に看過できないほど重いようだ ゲームオブジェクト全体を走査する系の処理は重いのは感覚的にもよく分かる 同じくゲームオブジェクト全体にメッセージを送信するSendMassageも滅茶苦茶重いらしくてMicrosoftのDocには 「SendMessage() と BroadcastMessage() は、どんな犠牲を払っても排除されるべきです。これらの関数は、直接関数呼び出しよりも約1000倍遅くなる可能性があります。」(google翻訳) って書いてあって草 素直にUnityEventsかC#Eventを使うのが安心だな http://mevius.5ch.net/test/read.cgi/gamedev/1693399963/66
68: 名前は開発中のものです。 [sage] 2023/09/20(水) 22:30:35.83 ID:6f4RNUvQ >>67 あと可能性があるとしたら、TransformへのアクセスはUnityのバージョンアップで最適化がされたことがあるそうで、GetComponentもそうなのかもしれん(調べてない) ・今日の作業 今日の作業は昨日と変わらず、重い処理関係以外で特に何も調べたりはしなかった 引き続き設計思想の話としては、インスペクターから値・参照を設定・確認できるのは便利である一方で、Unityに慣れるにつれてインスペクターから設定しなくてはならないのはコードとインスペクターの双方を行き来する必要があって面倒だとも感じてきた UnityにはEventTriggerなど便利なコンポーネントが存在しているが、一部は自分でスクリプトを組めば代替できるものもある GameObject.Find系が推奨されないもう一つの理由として「制作途中の仕様変更に弱い」という指摘があるが、これにはコードとインスペクターだけではなくヒエラルキーも動作確認の際にチェック対象になってしまう煩雑さを回避したいという願いが暗に含まれていそうだ http://mevius.5ch.net/test/read.cgi/gamedev/1693399963/68
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.017s