45 lines
987 B
C#
Raw Permalink Normal View History

2025-06-07 17:43:34 +08:00
using UnityEngine;
[ExecuteAlways]
public class LayerOrderUtils : MonoBehaviour
{
public string sortingLayer = "Default";
public int sortingOrder = 0;
public bool changeChild = true;
private void Start()
{
SetLayerOrder();
}
#if UNITY_EDITOR
private void Update()
{
SetLayerOrder();
}
#endif
private void SetLayerOrder()
{
//newMaterial.renderQueue = renderQueue;
if (changeChild)
{
Renderer[] rs = gameObject.GetComponentsInChildren<Renderer>();
for (int i = 0; i < rs.Length; ++i)
{
rs[i].sortingLayerName = sortingLayer;
rs[i].sortingOrder = sortingOrder;
}
}
else
{
Renderer r = gameObject.GetComponent<Renderer>();
if (r)
{
r.sortingLayerName = sortingLayer;
r.sortingOrder = sortingOrder;
}
}
}
}