UI系の操作が出来なくなったときの
チェックすべき7つのポイント
UI系の操作ができなくなった方は、ぜひチェックしてみてください。
それでは、さっそく見ていきましょう。
UIが操作できないときのチェックすべきポイント
Scene内に『EventSystem』と『StandaloneInputModule』が存在すること
シーン内に初めてボタンなどの操作可能なUIを作成したときに、
「EventSystem」と「StandaloneInputModule」がアタッチされた(画像1)
ゲームオブジェクト『EventSystem』(画像2)が自動で作成されますが、
誤って削除してしまった可能性もあります。
きちんと存在しているか確認してください。
もし「EventSystem」というゲームオブジェクトが見当たらなかった場合、
任意のオブジェクトに「EventSystem」と「StandaloneInputModule」
を追加してください。
目的のUIが所属するCanvasに『GraphicRaycaster』がアタッチされていること
目的のUIが所属するCanvasがアタッチされたオブジェクトに『GraphicRaycaster』がアタッチされているかを確認してください。(画像3)
『Canvas』と『GraphicRaycaster』は同一オブジェクトにアタッチされている必要があり、UIを操作するには『GraphicRaycaster』が必要です。
ですので、
目的のUIが所属するCanvasに『GraphicRaycaster』が一緒にアタッチされているかを確認してください。
目的のUIが所属するCanvasGroupの「Interactable」と「BlocksRaycasts」にチェックがあること(画像4)
もし目的のUIあるいはその親に「CanvasGroup」がアタッチされていれば、その「Interactable」と「BlocksRaycasts」にチェックが入っていることを確認してください。
目的のUIの「Interactable」にチェックがあること(画像5)
目的のUIの「Interactable」にチェックが入っているか確認してください。
「Interactable」はUIの有効/無効を決定するものです。
目的のUIの「RaycastTarget」にチェックがあること(画像6)
ボタンなどの目的のUIのImage又はTextの『RaycastTarget』の項目に、
しっかりとチェックが入っているか確認してください。
目的のUIの手前に、別のUIが重なっていないこと
目的のUIの上(前面)に、別のUIが重なっていないかを確認してください。
重なっている場合、重ならないように調整してください。
「目に見えないUI」が手前に重なっていないこと
6と同様ですが、透明に設定したUIが重なっていないかも確認してください。
目に見えないですから、見落としがちです。
6,7の対策として、もし目的のUIの手前にUIを配置したいときは、
手前に配置するUI(ImageやText)の『RaycastTarget』のチェックを外してください。
『RaycastTarget』とは
『RaycastTarget』とは、クリックが発生したときにそのUIをターゲットとするかどうかを決定するものです。RaycastTargetのチェックを外すと、そのUIはターゲットとして認識されなくなります。
ですので、
奥にあるUIを操作したい場合は、手前にあるUIのRaycastTargetを外せば良いのです。
最後にまとめです。
・Scene内に「EventSystem」「StandaloneInputModule」が存在するか
・所属するCanvasに「GraphicRaycaster」が存在するか
・UIが有効になっているか(Interactableにチェックが入っている
・所属するCanvasGroupによってRaycastがブロックされていないか
・別のUIが手前に配置されていてRaycastがブロックされていないか
以上で、UIが操作できなくなったときにチェックすべきポイントの解説を終わります。