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(); for (int i = 0; i < rs.Length; ++i) { rs[i].sortingLayerName = sortingLayer; rs[i].sortingOrder = sortingOrder; } } else { Renderer r = gameObject.GetComponent(); if (r) { r.sortingLayerName = sortingLayer; r.sortingOrder = sortingOrder; } } } }