(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]



ボタンなどのレイキャストの当たり判定(タッチ範囲)だけを変えられるRaycastPadding【Unity】【uGUI】


このエントリーをはてなブックマークに追加


この記事でのバージョン
Unity 2020.1.0f1


はじめに

UIを作っていて、ボタンの当たり判定を見た目より大きくしたいなんて事はよくあります。


しかし、uGUIのボタン(というよりRaycast Target)は当たり判定==画像となっているため、

当たり判定だけを大きくするには一工夫必要でした。



しかしUnity2020.1からはRaycastPaddingというRaycastの判定だけを広げる設定が追加され、

簡単に当たり判定だけを変えられるようになったので、今回はそれを使ってみようという感じの記事。


イメージとしては以下のような感じ。

f:id:kan_kikuchi:20200820085512g:plain


なお、記事中では以下のアセットを使っています。

Clean & Minimalist GUI Pack | 2D GUI | Unity Asset Store



RaycastPadding

早速ですが、RaycastPaddingはRaycast Targetが付いているImageやText等で設定が出来ます。

なお、マイナスにするほど範囲が広がる感じです。

f:id:kan_kikuchi:20200820084328j:plain


実際にButtonのImageのRaycastPaddingを広げたのが以下の物で、

画像外の場所でもタッチ出来ているのが分かるかと思います。

f:id:kan_kikuchi:20200820085512g:plain


ただし、RaycastPaddingを変更してもScene上では変化しない(確認できない)点には注意が必要です。

f:id:kan_kikuchi:20200820095243j:plain


ちなみにプログラムから変更する場合はVector4で設定します。

image.raycastPadding = new Vector4(-100, -100, -100, -100);



参考