Unity - Renderer 2D Data:Transparency Sort Mode を設定して動的に表示順を変更する
初めに
Unity で 2D URP を利用するとき、Renderer 2D Data を作成し、Renderer に割り当てることができます。本記事では、この Renderer 2D Data を使って、オブジェクトの後ろに回り込むなどの表示順の変更を動的に行う方法をまとめます。
前提
2D URP の設定をしておきます。
- Universal Render Pipeline Asset と Renderer 2D Data を作成し、Renderer List に Renderer 2D Data を指定する
- Edit > Project Settings > Graphics の Scriptable Render Pipeline Settings に作成した Universal Render Pipeline Asset を指定する
Renderer 2D Data の設定を変更する
Renderer 2D Data を確認すると、Light や Camera などの設定ができることが確認できます。今回は、General の Transparency Sort Mode を変更していきます。
Transparency Sort Mode には、4つのモードがあります。
Mode | 説明 |
---|---|
Default | カメラ位置からオブジェクトまでの距離で描画順を変更する |
Perspective | 透視投影に基づいて描画順を変更する |
Orthographic | 平行投影法に基づいて描画順を変更する |
Custom Axis | 軸に基づいて描画順を変更する |
default はカメラに近いほうが前に描画されるようです。Perspective と Orthographic に関しては、下のリンク先を参考にしてください。透視投影と平行投影について、解説されています。
Custom Axis を使う
2D ゲームでは、y 軸が大きいものが奥に描画されるものがあると思います。Custom Axis では、軸を使って描画順を動的に変更することができます。
このようにすることで、y 軸と z 軸で描画順が変更できるようになりました。オブジェクトの大きさによっては、微調整が必要なものもあるため、その場合はオブジェクトの z 軸を調整することで、描画順を変えるタイミングを修正することができます。