こんにちは、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をチェックするのは大変ですからね。

筆者のXをフォローしよう
「Unity初心者大学」というUnity初心者向けのYouTube始めました!!
ぜひチャンネル登録をお願いします!
最後まで読んでいただきありがとうございました!
すばらしいRaycastTargetライフをお過ごしください。
- Unity6000.0.32f1