LoginSignup
2
1

More than 3 years have passed since last update.

【Unity】ボタンが押せないのは大体RaycastTargetの設定ミス

Posted at

UIが反応しない…

スクリーンショット 2020-09-28 21.52.46.png
上の画像のようにボタンのUIをしっかり設定しているのに、なぜか押せない時ってありますよね?
そんな時は大体RaycastTargetの設定ミスです。

RaycastTargetとは

まず、Raycastというのは指定した場所からRay(光線)を放ち、光線と接触したオブジェクトの情報を取得する機能になります。
銃を撃って敵を攻撃する時に使用したり、本記事のテーマであるUIの情報を取得したりと様々な場面で使うことのできる機能です。

ではRaycastTargetとは何か?
もうお分かりだと思いますが、その名の通りRaycastTarget(対象)とするか否かを設定するパラメータになります。
これをtrueにするとRaycastTarget(対象)となるので、情報を取得することができるということです。

ボタンが押せない理由

本記事最初の画像のボタンが押せなかった理由は、以下の二つが同時に発生している時になります。

  • 「Helloテキスト」がボタンより手前にある
  • 「Helloテキスト」のRaycastTargettrue

手前かつRaycastTargettrueになっていると、背後のオブジェクトまでRayが通らないのでボタンが反応しない現象が起きるのです。
テキストボックスは見かけを整えるために、実際に見えてる範囲以上の大きさを持っている場合があり、ボタンと重なってしまうことが多いので要注意です。
スクリーンショット 2020-09-28 22.17.29.png
見かけよりでかいテキスト

image.png
trueになってしまっているRaycastTarget

解決策

基本的にボタン以外はRaycastTargetfalseにすることで解決します。
新しくUIを作成する時は注意してみてください。
それでも反応しない場合はボタンのOnClickが設定されていないか、シーン内にEventSystemがないかだと思われます。

まとめ

  • RaycastRay(光線)を放ち、光線と接触したオブジェクトの情報を取得する機能
  • 基本的にボタン以外はRaycastTargetfalseにしよう
  • それでも反応しない場合はOnClickを設定しているか確認しよう
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1