プログラミングで世界を変える

ゲームプログラミングと技術のこと

uGUIでボタンの邪魔をするタッチ判定を消すスクリプト

追記(2015/10/23)

(恐らく)Unity 5.2以降では、RaycastTargetというbool型のフィールド変数を持つようになりました。 TextやImageが継承しているGraphicという抽象クラスがこの変数を持っています。

f:id:splas_boomerang:20151023104209p:plain

それにより、このチェックボックスを外すだけで紹介しているスクリプトと同じような挙動をします。
※ただ、時々外したチェックが元に戻ってしまうことがあった気がするので、そのような場合に今回のスクリプトは有用かもしれません。

スクリプトの目的と使い方

uGUIではImageやTextにもタッチ判定が存在し、重なっているオブジェクトの描画順がボタンより上の場合、ボタンは反応しなくなります。透明のボタンをImage等の上に設置することで回避は可能ですが、場合によってはタッチ判定自体を消したい状況も出てくるかと思います。

そこでこちらの記事を参考にして、タッチ判定を消すスクリプトを作成しました。

tsubakit1.hateblo.jp

上記の記事でボタンのタッチ判定の範囲を変形させるスクリプトが紹介されていました。 それを少し応用し、範囲中の判定を常にfalseにすることで、タッチ判定を消す機能が実現出来ました。

uGUIのタッチ判定を消す

使い方としては、以下のようにタッチ判定を消したいオブジェクトにスクリプトを付加するだけ動作します。

f:id:splas_boomerang:20150317131853p:plain