45 lines
987 B
C#
45 lines
987 B
C#
|
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;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|