SpriteRenderer 与 MeshRenderer的排序问题

最近用CustomMesh写了一个国境线的功能,就是根据TileMap上的建筑物和其占领区域,自动生成边境线的Mesh的功能。
但是MeshRenderer和SpriteRenderer排序的问题让我小小的烦恼了一会,解决问题之后,总结如下。

SpriteRender的Shader都是ZWrite Off的所以调节Z轴是没有用的。
只能靠SortingLayer和OrderInLayer来排序。
具体层级关系Camera的Depath 大于 SortingLayer 大于 OrderInLayer。

MeshRenderer通常的Shader都是通过ZOrder来排序的,
但是有的时候为了让他们能和SpriteRenderer一起排序,
可以把Sprite/系列的Shader赋值给MeshRenderer。

而MeshRender只是Inspector面板上没有这两个字段而已,强制写入sortingLayerName和orderInlayer字段,就可以让他们参与SpriteRender的排序。

注意的是,个别小米手机,如果SpriteRenderer和MeshRenderer的ZOrder相同的时候,会莫名其妙的发生ZFighting。所以保险起见还是把MeshRenderer和SpriteRenderer的z轴错开以保证不会出问题。其他手机没有遇到这种情况。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章