パープルハット

※当サイトではGoogleアドセンス広告を利用しています

Unity SpriteRendererの描画順変更





2DでSpriteを使用するときによく生じる問題

例えば、下の画像のように画像が3枚あったとします(オブジェクト名と色が対応している)。ここで「red」を「green」の上に描画したいという場合はどうすればいいのでしょうか?




解決策

結論としては「Sprite Renderer」の「Additional Settings」である「Sorting Layer」か「Order in Layer」を設定すればいいです。次に、それぞれの項目の説明を行います。



Sorting Layerについて

「Sorting Layer」については「Sorting Layers」の設定を開いたときに下にある項目ほど後(上)に描画されるという法則があります
例えば、下の画像のような設定の場合だと、

  1. 「Default」の描画
  2. 「red」の描画
  3. 「green」の描画
  4. 「blue」の描画

という順で描画されるので、4,3,2,1の順で上に描画されます


したがって、「red」、「green」、「blue」のゲームオブジェクトについて「Sorting Layer」の設定をすると描画順の変更が可能となる
「Sorting Layers」の設定を変更しながら実行した様子はこんな感じです。





Order in Layerについて

「Order in Layer」では「Sorting Layer」が同じオブジェクトについての描画順を決定し、数値が大きいほど上(後)に描画されます
実際に実行するとこんな感じになります。