87 lines
1.9 KiB
C#
87 lines
1.9 KiB
C#
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<Renderer>() || !GetComponent<Renderer>().sharedMaterial || queues == null)
|
|
{
|
|
return;
|
|
}
|
|
GetComponent<Renderer>().sharedMaterial.renderQueue = queue;
|
|
for (int i = 0; i < queues.Length && i < GetComponent<Renderer>().sharedMaterials.Length; i++)
|
|
{
|
|
GetComponent<Renderer>().sharedMaterials[i].renderQueue = queues[i];
|
|
}
|
|
if (UseSortingLayers)
|
|
{
|
|
if (Resort)
|
|
{
|
|
GetComponent<Renderer>().sortingLayerName = sortingLayerName;
|
|
GetComponent<Renderer>().sortingOrder = SortingLayerOrder;
|
|
}
|
|
else
|
|
{
|
|
GetComponent<Renderer>().sortingLayerName = "Default";
|
|
GetComponent<Renderer>().sortingOrder = 0;
|
|
}
|
|
}
|
|
This_tranf = base.transform;
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
if (Resort)
|
|
{
|
|
GetComponent<Renderer>().sortingLayerName = sortingLayerName;
|
|
GetComponent<Renderer>().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<Renderer>().sortingOrder = SortingLayerCloudsAbove;
|
|
above_clouds = true;
|
|
}
|
|
}
|
|
else if (above_clouds)
|
|
{
|
|
GetComponent<Renderer>().sortingOrder = SortingLayerCloudsGround;
|
|
above_clouds = false;
|
|
}
|
|
}
|
|
}
|
|
}
|