負荷をかけない透明なuGUIボタン
画面のどこでもタップしたらシーン遷移するといった処理を行う場合に、 画面全体を覆うようなButtonを配置して、画像を透過にして使用することがあると思います。
実は透明でも処理コストはかかる
ただ、透明だとしても処理はされています。
Game画面のStatusを確認すると、Batchが2となっています。
α値を0にして、完全に透明にしても、
同じくBatchは2です。
つまり、見えていようが透明だろうが、Imageに対して律儀にちゃんと描画が走っているわけです。
この場合は、Buttonにアタッチされている、Buttonの文字を描画するのに1回、画像に1回の計2回です。
CanvasRendererのCull Transparent Mesh
そこで、用意されているのがCanvasRendererのCull Transparent Meshプロパティ。
uGUIでButtonを作ると、基本的にCanvasRendererがくっついています。
これにはCull Transparent Meshというプロパティがあり、 こいつにチェックを入れると、透過状態は無視してくれるようになります。
Butchが1と言うことは、文字を描画するだけの処理になりました。 同じく透明なオブジェクトは無視するようになったので、Tris/Vertsなどの頂点数なども削れています。
透過画像によって、実際のボタンの画像よりも大きな範囲をもつボタンを作るような場合は、Cull Transparent Meshを有効にするのが吉ということですね。