UI

【Unity】Canvasを分けてUIを最適化する

Canvasの仕様

Canvasは、配下の要素をメッシュ化して描画しています。ここで、Canvas配下の要素のいずれかが変更された場合、配下の要素を全てチェック・更新した上で再度メッシュ化を行います。Canvasにぶら下がっている要素の数および要素が変更される頻度によっては、処理量が大幅に増えパフォーマンスの悪化が起こります。

Canvasの分割

新しくCanvasを作成し 変更される頻度の高い要素群を変更されるタイミング別に新しいCanvasに移すことで最適化を行うことができます。Canvasは配下の要素のみをチェックするため、新しいCanvasに分割することで更新時にチェックする要素の数を減らすことができます。新しいキャンバスの配置先は、元のキャンバスの子としても構いません。Canvasがネストになっている場合、親は子のCanvasの要素を見にいかないからです。

参考

Pocket