【Unity】Spriteの描画順番をY座標で判定する方法!

2Dゲームを作っているとY座標が低いものを手前に表示したい場合が結構あると思います。

今回はその方法を紹介します。

デフォルトの描画順番

スプライトの描画順番は通常、SpriteRendererの設定で決まります。

下の優先順位で描画順番が決まります。

SortingLayer>Order in Layer>カメラから近い

Y座標でスプライトの描画順を変更する

設定されているレンダリングパイプラインによって設定方法が変わってきます。

レンダリングパイプライン、何それ?という人は

おそらくビルトインに設定されているため最初に紹介する方を参考にしてください。

設定項目が見当たらなかった場合は、後者の方法を確認してみてください。

ビルトインの場合

Edit>ProjectSetings>Graphicsを開きます。

TransparencySortMode「CustomAxis」にした後、TransparencySortAxis(x:0,Y:1,Z:0)に変更します。

URPの場合

Universal Render Pipeline Assetに設定されているRenderer 2D Dataをを開きます。

設定項目はビルトインのときと同じです。

TransparencySortMode「CustomAxis」にした後、TransparencySortAxis(x:0,Y:1,Z:0)に変更します。

まとめ

これだけでY座標が低いものを手前に表示できるようになりました!

TransparencySortAxisの設定を変えるとY軸以外でも判定できるようになるので、ぜひ試してみてください!

コメント