[unity]ボタンの判定を好みのサイズにする

1番簡単な方法は、ダミーの UI/Image オブジェクトを生成し、

Color を透明(a = 0)
Cull Transparent Mesh にチェックを入れる

というものです。
Width、Height を実際の絵より大きくすることで、見た目よりも反応のいいボタンを作ることができます。

どのくらいボタン判定するか可視化したい

ただし、このままだとボタン判定の範囲を確認することが出来ません。
Color を a > 0 にすれば見えるのですが、実行時に 0 でないと Cull Transparent Mesh が効かなくなりますし、うっすらと白い四角が見えてしまいます。
それなら…とエディタで毎回確認するたびに Color をいじるのも面倒ですし、手動でこんなことをしていたら、全てのボタンを判定ありの状態で見るなんて面倒でやってられません。
でも、出来ればすべてのボタンの判定がかぶらず、判定範囲はなるべく大き目にしておきたい…。

エディタではボタン判定範囲を可視化したい、実行時は不可視にしたいというわけで、次のような単純なスクリプトをつけておき、Color は a = 0.1~0.3 くらいにしておくと望みの運用が可能です。

  • Unity Editor 中はうっすらと表示された矩形で範囲を確認
  • プレイ中、ビルドでは透明表示でボタン判定だけ大きく
using UnityEngine;
using UnityEngine.UI;

public class CollisionStartup : MonoBehaviour
{
    Image image;

    void Awake()
    {
        image = GetComponent<Image>();
        if (image != null)
        {
            image.color = new Color(image.color.r, image.color.g, image.color.b, 0);
        }
    }
}