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軸錯開以保證不會出問題。其他手機沒有遇到這種情況。

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