こんにちは、Unityエンジニアのオオバです。
uGUIを使ってUI開発する際に、
RaycastTargetの負荷が
課題になるときがあります。
一般的に必要最低限のRaycastTargetに
絞ったほうが良いとされているのは、
負荷が上がるためです。
どういった理由で負荷が上がるのか、
本記事ではRaycastTarget
の負荷について解説します。
またRaycastTargetで重くなる最悪のケースも紹介します。
RaycastTargetは必要なUIだけにすべき
RaycastTarget
は必要なUIにだけ設定すべき理由は、
RaycastTarget ONのUIの数だけタップ時の負荷が高まるからです。
RaycastTarget ONのUIの数が重要です。
数が増えるほどタップしたときの
反応は悪くなります。(負荷が上がります)
- RaycastTargetは必要最低限に絞る(ボタンなど)
- RaycastTarget ONのUIを重ねない
この2点を覚えておきましょう。
👉DOTweenの教科書を読んでUnityアニメーションをプログラミングしてみよう!
【最悪のケース】RaycastTarget ONのUIを重ね過ぎると負荷
RaycastTarget ONのUIが大量に重なる時が
最も負荷が上がります。
コチラの画像を御覧ください。
3パターン用意しました。
- RaycastTarget OFF
- 画面タップ(RaycastTarget ON時)※UIには触れていない
- RaycastTarget ONのUIが重なる部分をタップ
3. RaycastTarget ONのUIが重なる部分をタップ
が最も負荷が高いです。
RaycastTargetのUIが重なると負荷が上がる理由は、
UI同士のソート処理が増えるためです。
↓これが原因です。
通常使用であれば気にする必要なし
ただ普通に使っているぶんには、
そこまで神経質になる必要はないです。
カリカリにチューニングする必要がある時に
チェックしてみましょう。
UIに触れていなくても負荷は上がる
地味に重要なのは2番「画面タップ」です。
UIに触れていなくても画面をタップしただけで
負荷が固定費として計上されます。
毎フレームの負荷なので、
タップしている間ずっと重い状態です。
RaycastTargetの数が増えるほど
負荷は上がるため注意が必要ですね。
RaycastTargetの対象uGUIのおさらい
おさらいになりますが、
RaycastTargetを設定できるuGUIは4種類あります。
- Image
- RawImage
- Text
- Button
これら4種類のuGUIがRaycastTarget
の対象です。
RaycastTargetの使いすぎで負荷が上がる理由のまとめ
もしUIを開発していて
タップで重く感じた時、
次の2点を思い出しましょう。
- RaycastTargetは必要最低限に絞っているか
- RaycastTarget ONのUIを重ねていないか
タップはユーザーと最も近いアプリとのコミュニケーションです。
タップの感触でユーザは離れます。
気持ちの良いタップ処理を実装するためにも
RaycastTargetの負荷は軽視しないほうが良いでしょう。
uGUIは開発が進むにつれて膨大な量となります。
開発序盤からRaycastTargetをOFFにしておくことをオススメします。
あとから大量のUIをチェックするのは大変ですからね。
この記事が気に入ったらフォローしよう
「Unity初心者大学」というUnity初心者向けのYouTube始めました!!
ぜひチャンネル登録をお願いします!
最後まで読んでいただきありがとうございました!
すばらしいRaycastTargetライフをお過ごしください。
- Unity2020.3.15f1