forked from Shardstone/trail-into-darkness
64 lines
2.2 KiB
C#
64 lines
2.2 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace Jovian.Utilities {
|
|
|
|
public class CustomRenderQueueMaterialList : MonoBehaviour {
|
|
|
|
[System.Serializable]
|
|
public class MaterialRenderQueue {
|
|
public Material material;
|
|
public int renderQueue;
|
|
|
|
public int storedRenderQueue;
|
|
}
|
|
|
|
public bool updateMaterialsInEditor;
|
|
[SerializeField]
|
|
private MaterialRenderQueue[] materialRenderQueueList;
|
|
|
|
private void Awake() {
|
|
#if UNITY_EDITOR
|
|
if(updateMaterialsInEditor) {
|
|
Debug.LogWarning("Updating Materials will cause asset files to change. Please review your change log to ensure only valid changes are submitted.");
|
|
}
|
|
else {
|
|
return;
|
|
}
|
|
#endif
|
|
|
|
foreach(var materialRenderQueue in materialRenderQueueList) {
|
|
if(materialRenderQueue.material) {
|
|
materialRenderQueue.storedRenderQueue = materialRenderQueue.material.renderQueue; // store the materials original render queue
|
|
materialRenderQueue.material.renderQueue = materialRenderQueue.renderQueue; // overwrite the render queue
|
|
}
|
|
}
|
|
}
|
|
|
|
private void OnDestroy() {
|
|
#if UNITY_EDITOR
|
|
if(updateMaterialsInEditor) {
|
|
Debug.LogWarning("Updating Materials will cause asset files to change. Please review your change log to ensure only valid changes are submitted.");
|
|
}
|
|
else {
|
|
return;
|
|
}
|
|
#endif
|
|
foreach(var materialRenderQueue in materialRenderQueueList) {
|
|
if(materialRenderQueue.material) {
|
|
materialRenderQueue.material.renderQueue = materialRenderQueue.storedRenderQueue;
|
|
}
|
|
}
|
|
}
|
|
|
|
public bool DoesMaterialExistInList(Material material) {
|
|
foreach(var materialRenderQueue in materialRenderQueueList) {
|
|
if(materialRenderQueue.material == material) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
}
|
|
} |