透明なUIを描画しないようにする

Unity 2018.2になってCanvas RendererにcullTransparentMeshという機能が追加されていました。

有効にすると、UIを作るメッシュの頂点の色がほぼ0であれば描画をしないようになります。デフォルトではOFFですが、ONにした方が良いと思います。プリセットという機能があるので、デフォルトの設定を上書きすると便利です。コンポネントの右上のスライダーのようなアイコンを押すと作成・適用が可能です。

以前は何もオプションがない次のような見た目のコンポーネントでした。

詳細

Unity UIを使って描画するとき、透明なボタンを作りたいということがあると思います。ImageとかTextの色(アルファ値)を0にすれば可能ですが、これだと余計な処理が行われてしまいます。透明な物体を描画するということが行われていて、しかもこれが結構重たいです。GPUにもよりますが一般的に半透明の描画物は重たいです。透明というのも半透明に含まれます。(全画面でのクリックを取るため画面サイズのボタンを透明にしておいたことがありますが、数%がこの描画になっていたことがあります。)

通常の場合だと透明なUIの描画が行われていることが、Frame Debuggerを使って確認できます。

以前だとGraphicコンポーネントを継承した独自のクラスを作って対処するとかその場しのぎな対応が必要だったはずです。チェックつけるだけなのでお手軽です。