Spriterenderer 设置渲染层级时可以创建 Sorting layer 然后指定层级关系,最先创建的为最先渲染的,放在最底层。相同层级设置Order layer 的数值,数值越大越靠前
Mesh renderer 在渲染时没有指定的layer。但是他们的父类都是继承的Renderer。可以通过代码来指定与Spriterenderer 的 层级顺序。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SetMeshLayer : MonoBehaviour {
public string layerName;
public int order;
private MeshRenderer rend;
void Awake()
{
rend = GetComponent<MeshRenderer>();
rend.sortingLayerName = layerName;
rend.sortingOrder = order;
}
public void Update()
{
if (rend.sortingLayerName != layerName)
rend.sortingLayerName = layerName;
if (rend.sortingOrder != order)
rend.sortingOrder = order;
}
public void OnValidate()
{
rend = GetComponent<MeshRenderer>();
rend.sortingLayerName = layerName;
rend.sortingOrder = order;
}
}