UnityのuGUIのクリック範囲を広げたり制限したりする方法
Unityのボタンは画像の範囲でクリック判定を行います。
この範囲は基本的にGraphicクラスが表示されている範囲に適応されます。要するに「画像が表現されている範囲(の四角)」に適応されます。
この当たり判定の範囲を絞るには、ICanvasRaycastFilterを使用します。この範囲を設定することで、実際に当たり判定が発生する範囲を限定することができます。
例えばボタンの当たり判定を円形にくりぬくような場合、以下の様なコードが使用できます。
逆に当たり判定の範囲を広げる場合、以下のコードが使用できます。 このコードは単純に画像を描画せずGraphicの当たり判定の範囲だけを使用します。
このコードをImageの変わりに設定し、Buttonの子オブジェクトに設定すると、RectTranformのサイズをボタンの当たり判定として使用することが出来ます。*1
*1:動作にはCanvasRendererが必要です