シェアする

[Unity]2Dの奥行をY軸で描画する[メモ]

スプライトの描画順をY座標によって変化させることで2Dに奥行をだす方法についてのメモ。

Unityにもともとある機能を利用するので簡単。

Transparency sort mode の設定

Edit > Project Settings > Graphics > Camera Settings

Transparency sort AxisのYの値を1に設定することで、Y座標の低いオブジェクトが前に表示される。-1ならY座標の高いオブジェクトが前に表示される。

Sorting Group コンポーネントの追加

描画したいオブジェクトが複数のスプライトで構成されているときは、Sorting Groupコンポーネントをアタッチし、そこでひとまとめのレイヤー設定ができる。

描画が入れ替わるタイミングについて

オブジェクトの中央の位置で描画の入れ替えが行われている。そのため大きいオブジェクトは上記の設定だと不自然に感じる。参考にしたサイトでは、Transparency sort AxisのZの値を1にして、オブジェクトのZ座標を下げることで調整していた。

自分は結局、空のゲームオブジェクトにSorting Groupコンポーネントをアタッチして、空のゲームオブジェクトの中心が描画するオブジェクトの、入れ替えを起こしたいY座標にくるように配置して調整した。たぶん正常に表示されている。

参考

【Unity】スプライトの描画順を「下にある物を手前」にする2017/04/14

フォローする