using UnityEngine; namespace Artngame.SKYMASTER { [AddComponentMenu("Effects/SetRenderQueue")] public class SetRenderQueue : MonoBehaviour { public int queue = 1; public int[] queues; public bool Resort; public int SortingLayerOrder; private string sortingLayerName = "Default"; public int sortingLayerID; public bool is_cloud = true; private Transform This_tranf; public bool above_clouds; public int SortingLayerCloudsGround; public int SortingLayerCloudsAbove = 1; public bool UseSortingLayers = true; protected void Start() { if (!GetComponent() || !GetComponent().sharedMaterial || queues == null) { return; } GetComponent().sharedMaterial.renderQueue = queue; for (int i = 0; i < queues.Length && i < GetComponent().sharedMaterials.Length; i++) { GetComponent().sharedMaterials[i].renderQueue = queues[i]; } if (UseSortingLayers) { if (Resort) { GetComponent().sortingLayerName = sortingLayerName; GetComponent().sortingOrder = SortingLayerOrder; } else { GetComponent().sortingLayerName = "Default"; GetComponent().sortingOrder = 0; } } This_tranf = base.transform; } private void Update() { if (Resort) { GetComponent().sortingLayerName = sortingLayerName; GetComponent().sortingOrder = SortingLayerOrder; Resort = false; } if (!UseSortingLayers || !is_cloud) { return; } if (Camera.main != null && Camera.main.transform.position.y > This_tranf.position.y) { if (!above_clouds) { GetComponent().sortingOrder = SortingLayerCloudsAbove; above_clouds = true; } } else if (above_clouds) { GetComponent().sortingOrder = SortingLayerCloudsGround; above_clouds = false; } } } }