【Unity】ボタンが押せない!チェックすべき7つのポイント

本日のテーマ

UI系の操作が出来なくなったときの
チェックすべき7つのポイント

UI系の操作ができなくなった方は、ぜひチェックしてみてください。
 

 

 
それでは、さっそく見ていきましょう。
 

UIが操作できないときのチェックすべきポイント

 

Check.1

Scene内に『EventSystem』と『StandaloneInputModule』が存在すること

シーン内に初めてボタンなどの操作可能なUIを作成したときに、
EventSystem」と「StandaloneInputModule」がアタッチされた画像1image1
ゲームオブジェクト『EventSystem画像2image2が自動で作成されますが、
誤って削除してしまった可能性もあります。
きちんと存在しているか確認してください。

もし「EventSystem」というゲームオブジェクトが見当たらなかった場合、
任意のオブジェクトに「EventSystem」と「StandaloneInputModule
を追加してください。

 

Check.2

目的のUIが所属するCanvasに『GraphicRaycaster』がアタッチされていること

目的のUIが所属するCanvasがアタッチされたオブジェクトに『GraphicRaycaster』がアタッチされているかを確認してください。画像3image3
Canvas』と『GraphicRaycaster』は同一オブジェクトにアタッチされている必要があり、UIを操作するには『GraphicRaycaster』が必要です。

ですので、
目的のUIが所属するCanvasに『GraphicRaycaster』が一緒にアタッチされているかを確認してください。

 

Check.3

目的のUIが所属するCanvasGroupの「Interactable」と「BlocksRaycasts」にチェックがあること画像4image4

もし目的のUIあるいはその親に「CanvasGroup」がアタッチされていれば、その「Interactable」と「BlocksRaycasts」にチェックが入っていることを確認してください。

 

Check.4

目的のUIの「Interactable」にチェックがあること画像5image5

目的のUIの「Interactable」にチェックが入っているか確認してください。
Interactable」はUIの有効/無効を決定するものです。

 

Check.5

目的のUIの「RaycastTarget」にチェックがあること画像6image6

ボタンなどの目的のUIのImage又はTextの『RaycastTarget』の項目に、
しっかりとチェックが入っているか確認してください。

 

Check.6

目的のUIの手前に、別のUIが重なっていないこと

目的のUIの上(前面)に、別のUIが重なっていないかを確認してください。
重なっている場合、重ならないように調整してください。

 

Check.7

「目に見えない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が操作できなくなったときにチェックすべきポイントの解説を終わります。