Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9366

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

$
0
0

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を設定しているか確認しよう

Viewing all articles
Browse latest Browse all 9366

Latest Images

Trending Articles