Trail RendererのOrder in Layerが機能しない問題【Unity】
Trail RendererのOrder in Layerが機能しない
Unityで2Dゲームを作成中に、表題の問題が起きたのでその解決策を書き置きます。
【環境】
MacOS:Catalina 10.15.7
Unity:2020.3.21f1
テンプレート:2D
状況
自作ゲームで、プレイヤーが動いた軌跡を描画するTrail Rendererを適用しました。
Spriteを通過する際に、軌跡をSpriteより手前側に描画したいので、Order in LayerをTrailRendererは2、Spriteは0を設定したのに、軌跡は奥側を通るままでした。
状況はこの通り。
白い糸のプレイヤーの軌跡が、黒い針の手前を通ってほしい。
Sorting Layerを変えても同じでした。
解決法
調べてみるとUnityのForumで話題がありました。
Trail Rendererに付けたMaterialのShaderがデフォルトのままだとsorting layerが効かないということでした。
そこでMaterialのShaderをSprite/Defaultにしてみます。
これで無事にorder in layerが効くようになりました。
※針の右半分にorder in layerが最大のスプライトを付けているため、右半分は糸が後ろになっています。
おまけ
今回のバグを直して作ったゲームです。
Androidのみですが遊んでもらえたら嬉しいです。
https://play.google.com/store/apps/details?id=com.Hayatoya.Itotosi2020