これはもともとは 自分のブログ に掲載していた記事なのだけど、まあ自分のブログは技術的な記事をドカドカ掲載するような場所でもないので、こちらにも並行して掲載しておく。
ある日、質問された。
「そういえば、unityでsorting layerと3D objectの関係ってどうなってるんでしょう?」
Sorting Layerは3D objectとどう影響しあうのか、検索してみたけれど見つからない。
「違うものだから挙動しない」なんて解説もあってが、テストした結果は違うw
まあこんなのはテストしてみりゃいいやと思って、下のようなsceneを作ってテストしてみたら、抱腹絶倒というか**「エー」な結果**が得られたので、ちょっとブログに記事として残しておきたい。
さて。
sorting layerは以下のルールで動く。
- リストの下の方が描画の優先度は高い。
- 同一優先度ならばカメラに近い方が「上」
またunityでは言うまでもなく3D Objectにはsorting layerはつかない。そこで空objectにspriteをぶら下げて、そいつにsorting layerをひっつけ、その下に3D Objectを配置するという暴挙に出てみる。
結論として言うと3D Objectにsorting layerは影響しないが、その前後を2Dobjectが動く時には、sorting layerはレンダリング結果に影響するという世にもキカイな挙動になるのである。
下は動かしたときに得られるレンダリング結果の一部。
テストをしたプロジェクトを下に置いておく。
なんの役に立つかは想像もつかないが、まあないよりはいいテストだろう。