using UnityEngine; namespace Thousandto.Launcher.ExternalLibs { public class RenderQueueAutomatic : MonoBehaviour { //UIPanel private UIPanel panelOwner; private void OnEnable() { panelOwner = GetUIPanelByParent(transform); if (panelOwner != null) { SetRenderQueue(panelOwner.startingRenderQueue + 1); } } //设置RenderQueue private void SetRenderQueue(int renderQueue) { var Renderers = GetComponentsInChildren(); var count = Renderers.Length; if (count > 0) { for (int i = 0; i < count; i++) { if(Renderers[i].sharedMaterial) Renderers[i].sharedMaterial.renderQueue = renderQueue; } } } //获取UIPanel private UIPanel GetUIPanelByParent(Transform trans) { var uiPanel = trans.GetComponent(); if (uiPanel != null) { return uiPanel; } if (trans.parent != null) { return GetUIPanelByParent(trans.parent); } return null; } } }