如何以编程方式更改 Unity 中的排序层?

How do I change the sorting layer in Unity programmatically?

我正在制作一款 2D 游戏。我很困惑,因为有两种类型的图层。图层和 "Sorting Layers"。似乎只有 "Sorting Layers" 重要。

我在每一层上都有很多对象,我想以编程方式设置 "Sorting Layer"。我试过了

item.layer = LayerMask.NameToLayer("IslandLayer");

但这只设置图层而不是 "Sorting Layer"。有没有办法以编程方式设置 "Sorting Layer"?

您更改的是 GameObject.layer which is the "other" Layer, not the SortingLayer


排序层在相应的 Renderer 组件中发生了相当大的变化,例如通过 Renderer.sortingLayerID using SortingLayer.NameToID

item.GetComponent<Renderer>().sortingLayerID = SortingLayer.NameToID("NameOfTheSortingLayer");