スポンサーリンク
エラー・トラブルシューティング

UnityでRaycastが当たらない原因まとめ|クリック判定が効かない時の完全対処法

エラー・トラブルシューティング

はじめに

「ボタンを押しても反応しない」「クリックしても何も起きない」——UnityでUIを作り始めたとき、多くの人が一度はここで止まります。

見た目はちゃんとボタンなのに、押しても無反応。エラーも出ない。こういう状態になると、「どこが悪いのか分からない」のが一番つらいところですよね。

実はこの問題、バグではなくほとんどが決まったパターンの設定ミスや構造の問題で起きています。逆に言えば、チェックするポイントを知っていれば、数分で解決できることが多いです。

私も最初は「なんで動かないの…」と30分以上悩んでいたのですが、原因を分類して理解してからは、数秒で直せるようになりました🙂

クリック判定のトラブルは大きく次の3つに分けられます。

  • 設定ミス(Raycast TargetやButtonの状態)
  • UIの重なりによる遮蔽
  • EventSystemなどのシステム構成の問題

この3つを順番に見ていけば、「どこが原因か」はかなりの確率で特定できます。

ここからは、まず最短で直すためのチェックポイントを確認していきましょう。




結論:まず最初に確認すべきポイント

時間をかけて原因を探す前に、まずはここだけ確認してみてください。実際の現場でも、この5つで解決するケースがかなり多いです。

  • Raycast TargetがONになっているか
  • EventSystemがシーン内に存在するか
  • CanvasにGraphic Raycasterが付いているか
  • 透明なUIが上に重なっていないか
  • ButtonのInteractableとOnClickが有効か

この中で1つでも抜けていると、クリックは正常に動きません。

判断のコツとしては次の通りです。

状態考えられる原因
ホバーで色が変わるRaycastは通っている(クリック処理側の問題)
まったく反応しないEventSystemやRaycasterの問題
一部だけ押せないUIの重なり(遮蔽)の可能性が高い

特に初心者のうちは、「全部見直してるのに直らない…」となりがちですが、原因はほぼこのどれかに当てはまります。

まずは上のチェックを一通り確認して、それでもダメな場合に次の原因別解説を見ていくとスムーズです。




UnityでRaycastが当たらない主な原因

クリック判定が効かないときは、「なんとなく全部おかしい」と感じがちですが、実際には原因はかなり絞られています。

ポイントは、問題を3つのカテゴリに分けて考えることです。

  • 設定ミス:Raycast TargetやButtonの状態が正しくない
  • UIの遮蔽:見えないUIがクリックをブロックしている
  • システム構成:EventSystemやRaycasterの不足・設定不備

この3つのどれかに当てはまるかを意識するだけで、原因特定のスピードがかなり変わります。

たとえばこんな感じです👇

症状疑うべきカテゴリ
まったく反応しないシステム構成(EventSystemなど)
一部だけ押せないUIの遮蔽
見た目は正常なのに反応しない設定ミス

ここを意識せずに手当たり次第に設定を触ると、逆に状況が悪化することもあります。

私も最初の頃は「とりあえず全部ONにしてみる」みたいなことをやって、余計に分からなくなった経験があります…😅

次は、この3つのカテゴリごとに「症状 → 原因 → 解決方法」の順で、具体的に見ていきます。


Raycast TargetがOFFで判定されない

クリックしているのにまったく反応しない場合、まず疑うべきなのが「Raycast Target」の設定です。

UIのクリック判定は、Raycast TargetがONになっているオブジェクトだけが対象になります。ここがOFFだと、そもそもクリックが届いていません。

よくある症状

  • ボタンを押しても何も起きない
  • ホバーエフェクトすら出ない
  • 見た目は完全に正常

考えられる原因

  • ImageコンポーネントのRaycast TargetがOFF
  • Text(TextMeshPro含む)のRaycast TargetがOFF

解決方法

以下の手順で確認してみてください。

  1. Hierarchyから対象のUIを選択
  2. InspectorでImageまたはTextコンポーネントを確認
  3. 「Raycast Target」にチェックを入れる

注意点

ここでよくある勘違いが、「Buttonが付いていればクリックできる」というものです。

実際には、Buttonはあくまで「クリックされたときの処理」を持っているだけで、クリックを受け取る役割はImageやText側にあります。

再発防止のコツ

  • UIを新しく作ったらまずRaycast Targetを確認する
  • クリック対象のUIは必ず1つに絞る(複数ONにしない)

逆に、装飾用の画像やテキストにRaycast TargetがONのままだと、クリックを邪魔する原因になります。

「クリックできない」ときはONを疑い、「クリックが通らない」ときはOFFを疑う。この切り替えができるようになると、一気にトラブル解決が速くなります🙂




Buttonが無効化されている

見た目はボタンなのに押せない場合、「そもそもボタンが無効状態になっている」ケースもかなり多いです。

この場合、Raycast自体は通っていても、クリックイベントが実行されない状態になります。

よくある症状

  • ボタンにカーソルを合わせると色は変わる
  • クリックしても何も起きない
  • 見た目が少し暗く(グレーっぽく)なっている

考えられる原因

  • Buttonコンポーネントの「Interactable」がOFF
  • 親に設定されたCanvasGroupの影響
  • OnClickイベントが未設定

解決方法

  1. 対象のButtonを選択
  2. Inspectorの「Interactable」にチェックが入っているか確認
  3. OnClickに処理が登録されているか確認

CanvasGroupを使っている場合は、さらに次の項目もチェックします。

  • InteractableがOFFになっていないか
  • Blocks RaycastsがOFFになっていないか

注意点

CanvasGroupは親オブジェクトに付けることが多いので、子のButtonが正常でもクリックできなくなることがあります。

特にフェードイン・フェードアウトの処理を入れた後に、「いつの間にか押せなくなった」というパターンはよく見かけます。

再発防止のコツ

  • UIアニメーション後はInteractableの状態を必ず確認する
  • OnClick未設定のボタンを放置しない

「ホバーは効くのにクリックだけ効かない」場合は、この設定を疑うとかなりの確率で当たります。


透明なUIにクリックが遮られている

見た目ではボタンがちゃんと見えているのに、なぜか押せない。このパターンで一番多いのが「透明なUIによる遮蔽」です。

UnityのUIは少し特殊で、透明でもRaycast TargetがONならクリックを受け取ってしまう仕様になっています。

よくある症状

  • ボタンの上に何もないように見えるのに押せない
  • 特定の場所だけクリックできない
  • UIを動かすと突然押せるようになる

考えられる原因

  • 透明なImageがボタンの上にある
  • 大きなText(余白含む)が重なっている
  • UIの当たり判定サイズが見た目より大きい

解決方法

原因となっているUIのRaycastを無効にします。

  1. Hierarchyで怪しいUIを選択
  2. ImageまたはTextコンポーネントを確認
  3. Raycast Targetのチェックを外す

効率的な特定方法

どのUIが邪魔しているか分からない場合は、次の方法が便利です。

  • 再生中にEventSystemを選択
  • Inspectorの「Current Raycast」を確認
  • クリック時にヒットしているオブジェクト名を見る

ここにボタン以外の名前が表示されていれば、それが原因です。

注意点

「透明だから大丈夫」と思ってそのままにすると、後から確実にハマります。

特に背景用のImageや、画面全体を覆うUIは要注意です。

再発防止のコツ

  • クリック不要なUIは最初からRaycast TargetをOFFにする
  • UIを配置したらRect Toolで範囲を確認する

私も最初は「なんでここだけ押せないの?」と悩んでいたのですが、原因はほぼこれでした。見えない壁があるイメージで考えると分かりやすいです🙂




EventSystemが存在しない

UI全体がまったく反応しない場合、まず疑うべきなのが「EventSystem」の有無です。

EventSystemは、クリックやタップといった入力をUIに伝える司令塔のような役割を持っています。これがシーンに存在しないと、どれだけ正しくUIを作っても入力は一切届きません。

よくある症状

  • すべてのボタンが反応しない
  • ホバーもクリックも一切効かない
  • エラーは出ていないのに動かない

考えられる原因

  • EventSystemがシーンに配置されていない
  • 誤って削除してしまった
  • 新規シーン作成時にUIを手動で追加した

解決方法

以下の手順でEventSystemを追加できます。

  1. Hierarchyを右クリック
  2. 「UI」→「Event System」を選択
  3. シーン内にEventSystemが作成される

すでに存在している場合は、重複していないかも確認しておきましょう。

注意点

EventSystemは基本的にシーンに1つだけでOKです。複数あると、意図しない挙動になることがあります。

また、新しいInput Systemを使っている場合は、「Input System UI Input Module」が正しく設定されているかもチェックしておくと安心です。

再発防止のコツ

  • UIが反応しないときは最初にEventSystemを見るクセをつける
  • シーンテンプレートにEventSystemを含めておく

「全部のUIが動かない」というときは、まずここを疑うのが近道です。逆に言えば、ここが正常なら原因はかなり絞れます。


Graphic Raycasterがない・設定が間違っている

ボタンやUIがあるのにクリックが届かない場合、「Graphic Raycaster」の設定もチェックしておきたいポイントです。

Graphic Raycasterは、UIに対してRaycastを飛ばすためのコンポーネントです。これがないと、そもそもUIに対して判定処理が行われません

よくある症状

  • 特定のCanvasだけ反応しない
  • 一部のUIは動くのに、別のUIは無反応
  • 入れ子になったUIだけクリックできない

考えられる原因

  • CanvasにGraphic Raycasterが付いていない
  • 子CanvasにRaycasterがない
  • Blocking Maskの設定で対象Layerが除外されている

解決方法

  1. 対象のCanvasを選択
  2. Inspectorで「Graphic Raycaster」があるか確認
  3. なければ「Add Component」から追加

子Canvas(Canvasの中にCanvasを作っている場合)も、それぞれにGraphic Raycasterが必要です。

Blocking Maskの確認方法

  • Graphic Raycaster内の「Blocking Mask」をチェック
  • 対象UIのLayerが含まれているか確認

Layerが外れていると、見た目は正常でもクリックが通りません。

注意点

特にUIを分けて管理しようとしてCanvasを増やしたときに、この問題が起きやすいです。

「一部だけ反応しない」というときは、ほぼこのパターンかUIの重なりが原因です。

再発防止のコツ

  • Canvasを追加したら必ずRaycasterを確認する
  • Layer設計とBlocking Maskをセットで管理する

UIを細かく分けるほど、この設定は重要になります。中規模以上のプロジェクトでは特に意識しておきたいポイントです。




UIの重なり順・Hierarchyの問題

「見た目ではボタンが一番上にあるのに押せない」——この違和感、実はUnityではよく起きます。

原因はシンプルで、見た目の順番とクリック判定の順番が一致していないことです。

よくある症状

  • 一部分だけクリックできない
  • UIを少し動かすと押せるようになる
  • 特定のボタンだけ反応が悪い

考えられる原因

  • Hierarchyで手前にあるUIがクリックを奪っている
  • Canvas内の描画順が意図とズレている
  • Sorting Orderの設定ミス

解決方法

基本は「どのUIが一番前にあるか」を正しく整理することです。

  1. HierarchyでUIの順番を確認
  2. 手前に表示したいUIを下に配置(Unityは下ほど手前)
  3. 必要に応じてSorting Orderを調整

判断のコツ

  • 押せない場所に透明UIがないか確認
  • Rect Toolで各UIの範囲を可視化する

Rect Toolに切り替えると、見た目より広い当たり判定を持っているUIがすぐ分かります。

注意点

Unityでは「Hierarchyの下にある=前に表示される」というルールです。

このルールを知らないと、見た目と判定のズレにずっと悩まされます。

再発防止のコツ

  • UIはレイヤーごとに整理して配置する
  • 背景・装飾・操作UIを分ける

「見た目は合ってるのに押せない」と感じたら、この“見えない順番”を疑ってみると、一気に原因が見えてきます🙂


UIが裏返っている

少し見落としがちですが、UIの回転が原因でクリックできなくなることもあります。

特にX軸やY軸で180度回転している状態だと、見た目は同じでもクリック判定がうまく機能しないケースがあります。

よくある症状

  • 見た目は正常なのにクリックできない
  • 一部の角度でだけ反応しない
  • UIを回転させたあとから不具合が出た

考えられる原因

  • RectTransformのRotationが180度になっている
  • 親オブジェクトの回転の影響を受けている

解決方法

  1. 対象のUIを選択
  2. InspectorのRectTransformを確認
  3. Rotation(X・Y・Z)が0になっているかチェック

もし回転が必要な場合は、UI自体ではなく子オブジェクト側で見た目だけ調整すると安定します。

注意点

この挙動はCanvasの設定や描画モードによって変わることがあり、環境によっては問題が出ないこともあります。

そのため、「絶対に起きる問題」というよりは、特定条件で発生する可能性があるトラブルとして覚えておくとちょうどいいです。

再発防止のコツ

  • UIは基本的に回転させない設計にする
  • 回転が必要な場合は親子構造で分離する

「さっきまで動いていたのに急に反応しなくなった」というとき、UIの回転を触っていないかも一度チェックしてみるとヒントになることがあります。




3分でできる診断チェックリスト

原因を一つずつ探していくのも大事ですが、まずは短時間で全体を確認できるチェックリストを使うと効率が一気に上がります。

上から順番に確認していけば、ほとんどのケースはここで原因が見つかります。

  • □ EventSystemがシーン内に存在するか
  • □ Raycast TargetがONになっているか
  • □ ButtonのInteractableがONになっているか
  • □ 上に透明なUIが重なっていないか
  • □ CanvasにGraphic Raycasterが付いているか
  • □ Hierarchyの順番が正しいか

チェックの進め方のコツ

順番を意識するだけで、無駄な試行錯誤を減らせます。

  1. まず「全部反応しないか」を確認する
  2. 次に「一部だけか」を見る
  3. 最後に「見た目と挙動のズレ」をチェックする

この流れで考えると、

  • 全部ダメ → EventSystemやRaycaster
  • 一部だけ → UIの重なり
  • クリックだけダメ → Button設定

と、かなりスムーズに切り分けできます。

実際によくあるパターン

実務でも多いのは次の2つです。

  • 透明なImageが全面にあって全部ブロックしている
  • Canvasを分けたのにRaycasterを付け忘れている

どちらも「見た目では気づきにくい」のが厄介なポイントです。

チェックリストを使って順番に潰していけば、「なんとなく動かない」状態から抜け出しやすくなります🙂




原因を一発で特定するデバッグ方法

設定を一つずつ見直すのも大切ですが、「どこに当たっているか」を直接確認できるようになると、原因特定のスピードが一気に上がります。

EventSystemのCurrent Raycastを見る

再生中にEventSystemを選択すると、Inspectorに「Current Raycast」という項目が表示されます。

ここには、現在マウスが当たっているUIオブジェクトがリアルタイムで表示されます。

  • ボタン名が表示される → 正常に当たっている
  • 別のUIが表示される → そのUIが邪魔している
  • 何も表示されない → Raycast自体が届いていない

この1つを見るだけで、「設定ミスか」「遮蔽か」「システムか」がほぼ判断できます。

Rect Toolで当たり判定を可視化する

UnityのツールバーからRect Toolに切り替えると、UIの実際の当たり判定範囲が見えるようになります。

ここでよくあるのが、

  • テキストの余白が異常に広い
  • 透明Imageが画面全体を覆っている

といった「見た目では気づかないズレ」です。

クリックできない場所に重なっているオブジェクトが見つかれば、それが原因です。

一時的にRaycast TargetをOFFにして切り分ける

原因が分からないときは、怪しいUIのRaycast Targetを一時的にOFFにしてみるのも有効です。

  • OFFにしたら押せる → そのUIが原因
  • 変化なし → 別の要因

この「一つずつ外していく」方法は、シンプルですがかなり強力です。

私も実際の作業では、まずEventSystemを見て、それでも分からなければRaycast Targetを順番にOFFにしていくことが多いです。

慣れてくると、数秒で原因にたどり着けるようになります🙂




ここを間違えると永遠に直りません

クリック判定のトラブルで時間がかかる原因は、「間違った前提で考えてしまうこと」がほとんどです。

よくある勘違いを知っておくだけで、無駄な遠回りをかなり減らせます。

RaycastとColliderは別物

Unityには「Raycast」という言葉が2種類あります。

  • UI用:Graphic Raycaster
  • 3D用:Physics.Raycast

この2つは完全に別の仕組みです。

UIが反応しないのに「Colliderを付ける」といった対処をしても、効果はありません。

透明=クリックされないは間違い

見た目が透明でも、Raycast TargetがONならクリックを受け取ります。

つまり、

  • 透明でもブロックする
  • 見えていてもOFFなら反応しない

このルールを理解していないと、「見た目で判断してしまう」ミスが起きやすいです。

Buttonがあればクリックできるわけではない

Buttonはあくまで「クリックされたときの処理」を持つだけです。

実際にクリックを受け取るのは、ImageやTextなどのGraphicコンポーネントです。

そのため、

  • Raycast TargetがOFF → 押せない
  • Buttonが正常 → でも意味がない

という状態が普通に起こります。

Hierarchyの順番は見た目だけではない

Unityでは、Hierarchyの順番がそのまま描画順・クリック優先度に影響します。

下にあるものほど前に表示され、クリックも優先されます。

このルールを知らないと、「見た目は合っているのに押せない」原因に気づけません。

一度動いた=正しい設定ではない

UIは少し配置を変えただけで、当たり判定が変わることがあります。

そのため、

  • 前は動いていた
  • 今は動かない

という状況でも、「設定が正しい」とは限りません。

むしろUI周りは「ちょっとした変更で壊れやすい」部分です。

こうした勘違いを一度整理しておくと、原因の切り分けがかなり楽になります🙂




それ、本当にバグ?正常動作の判断基準

クリックできないと「バグかも?」と思いがちですが、実際には仕様通りに動いているケースも多いです。

ここで大切なのは、「どの状態なら正常なのか」を判断できるようになることです。

ホバーが効くならRaycastは正常

マウスを乗せたときに色が変わる場合、Raycast自体は通っています。

この状態でクリックできないなら、

  • ButtonのInteractable
  • OnClickの設定

を疑うのが自然です。

一部だけ反応しない場合は遮蔽を疑う

ボタンの一部だけ押せない場合は、ほぼ確実にUIの重なりが原因です。

特に次のパターンが多いです。

  • 透明なImageが一部だけ重なっている
  • Textの余白が広くて被っている

見た目では気づきにくいので、Rect Toolで確認すると一発で分かります。

全部反応しない場合はシステムを疑う

すべてのUIが反応しない場合は、設定よりも「仕組み側」の問題です。

  • EventSystemがない
  • Graphic Raycasterがない

この2つを確認するだけで解決することが多いです。

クリックだけ効かない場合の切り分け

少しややこしいのがこのパターンです。

  • ホバーは効く
  • クリックだけ効かない

この場合は、

  • OnClick未設定
  • InteractableがOFF

の可能性が高いです。

判断に迷ったときのシンプルな考え方

迷ったら次の3つで考えると整理しやすいです。

  • 当たっているか(Raycast)
  • 処理されているか(Button)
  • そもそも仕組みがあるか(EventSystem)

この順番で切り分けるだけで、「原因が分からない状態」から抜け出せます。

慣れてくると、「この症状ならここが怪しい」と直感で分かるようになります🙂


UIデバッグが快適になるおすすめ操作デバイス

クリック判定の不具合を調べていると、「本当に当たっているのか?」が分かりにくくて、何度も同じ場所をクリックする場面が増えます。

このとき、入力デバイスの精度が低いと「設定の問題なのか、操作ミスなのか」が分かりにくくなります。

特にUIの端や細かいボタンを扱う場合は、ポインタの安定性がかなり重要です。

クリック精度が高いマウスを使う

細かいUIデバッグでは、ポインタがブレないマウスがあると作業効率がかなり変わります。

たとえば次のようなポイントが効いてきます。

  • 狙った位置に正確にカーソルを置ける
  • 微妙な位置ズレを減らせる
  • クリックミスと設定ミスを切り分けやすい

実際、安価なマウスだと「押せないと思ったらズレてただけ」ということもよくあります。

安定して使えるモデルとしては次のようなものが扱いやすいです。

ロジクール Signature M650MGR
✅ Amazonでチェックする✅ 楽天でチェックする

長時間作業ならトラックボールも選択肢

UI調整やデバッグを長時間続ける場合、手首の負担も意外と無視できません。

トラックボールマウスを使うと、手を動かさずに操作できるので、細かい位置調整がしやすくなります。

エレコム トラックボールマウス HUGE PLUS
✅ Amazonでチェックする✅ 楽天でチェックする

ペンタブレットで直感的に操作する

「マウス操作がどうも合わない」という場合は、ペンタブレットも一つの方法です。

ペンで直接指すように操作できるので、UIの位置確認やクリック判定のチェックが直感的になります。

HUION ペンタブレット
✅ Amazonでチェックする✅ 楽天でチェックする

入力デバイスは軽視されがちですが、UIまわりの作業ではかなり影響が出ます。

「原因は分かっているのに直らない」と感じたときは、操作環境も一度見直してみると意外な発見があります。




まとめ

クリック判定が効かない問題は、複雑そうに見えて原因はかなり限られています。

特に重要なのは次の3つです。

  • Raycast Targetの設定
  • EventSystemの存在
  • UIの重なり(遮蔽)

この3つを優先的に確認するだけで、ほとんどのトラブルは解決できます。

もし迷ったときは、次の順番で考えると整理しやすいです。

  1. そもそも当たっているか(Raycast)
  2. クリック処理が動いているか(Button)
  3. 入力の仕組みがあるか(EventSystem)

この流れで切り分けると、「どこが原因か」が自然と見えてきます。

私自身も最初はかなり時間をかけて悩んでいましたが、仕組みを理解してからは「この症状ならここ」とすぐ判断できるようになりました。

UIまわりの不具合は一見ランダムに見えますが、実際は仕組み通りに動いているだけです。

一度パターンを覚えてしまえば、同じトラブルで詰まることはほとんどなくなります。


よくある質問(FAQ)

Q
3DオブジェクトにRaycastが当たらないのは同じ原因?
A

UIのRaycastと3DオブジェクトのRaycastは別の仕組みです。

UIは「Graphic Raycaster」、3Dは「Physics.Raycast」で処理されます。

そのため、UIが反応しない問題を3Dと同じ感覚で対処しても解決しません。

  • UI → EventSystem / Graphic Raycaster
  • 3D → Collider / Physics.Raycast

対象がどちらかをまず切り分けるのが大切です。

Q
TextMeshProでもクリックできないことはある?
A

あります。基本的な仕組みは通常のTextと同じです。

TextMeshProにも「Raycast Target」があり、これがOFFだとクリックは反応しません。

また、文字の見た目よりも大きな範囲を持っていることがあるので、他のUIを遮っているケースにも注意が必要です。

Q
スマホでタップが効かないのはなぜ?
A

基本的な原因はPCと同じですが、加えて入力設定の影響を受けることがあります。

  • Input Systemの設定
  • タッチ操作の有効化
  • UI Input Moduleの種類

特に新しいInput Systemを使っている場合は、「Input System UI Input Module」が正しく設定されているか確認してみてください。

PCでは動くのにスマホだけ反応しない場合は、この設定が原因になっていることが多いです。

※当サイトはアフィリエイト広告を利用しています。リンクを経由して商品を購入された場合、当サイトに報酬が発生することがあります。

※本記事に記載しているAmazon商品情報(価格、在庫状況、割引、配送条件など)は、執筆時点のAmazon.co.jp上の情報に基づいています。
最新の価格・在庫・配送条件などの詳細は、Amazonの商品ページをご確認ください。

スポンサーリンク