2DでSpriteを使用するときによく生じる問題
例えば、下の画像のように画像が3枚あったとします(オブジェクト名と色が対応している)。ここで「red」を「green」の上に描画したいという場合はどうすればいいのでしょうか?
解決策
結論としては「Sprite Renderer」の「Additional Settings」である「Sorting Layer」か「Order in Layer」を設定すればいいです。次に、それぞれの項目の説明を行います。
Sorting Layerについて
「Sorting Layer」については「Sorting Layers」の設定を開いたときに下にある項目ほど後(上)に描画されるという法則があります。
例えば、下の画像のような設定の場合だと、
- 「Default」の描画
- 「red」の描画
- 「green」の描画
- 「blue」の描画
という順で描画されるので、4,3,2,1の順で上に描画されます。
したがって、「red」、「green」、「blue」のゲームオブジェクトについて「Sorting Layer」の設定をすると描画順の変更が可能となる。
「Sorting Layers」の設定を変更しながら実行した様子はこんな感じです。
Order in Layerについて
「Order in Layer」では「Sorting Layer」が同じオブジェクトについての描画順を決定し、数値が大きいほど上(後)に描画されます。
実際に実行するとこんな感じになります。