2023-04-03 11:04:31 +08:00

59 lines
1.5 KiB
C#

using UnityEngine;
using UnityEditor;
using System.Collections;
namespace BFEditor.Resource
{
public class HideIfDisabledDrawer : MaterialPropertyDrawer
{
protected string[] argValue;
bool hidden;
public HideIfDisabledDrawer(string name1)
{
argValue = new string[] { name1 };
}
public HideIfDisabledDrawer(string name1, string name2)
{
argValue = new string[] { name1, name2 };
}
public HideIfDisabledDrawer(string name1, string name2, string name3)
{
argValue = new string[] { name1, name2, name3 };
}
public HideIfDisabledDrawer(string name1, string name2, string name3, string name4)
{
argValue = new string[] { name1, name2, name3, name4 };
}
public override void OnGUI(Rect position, MaterialProperty prop, string label, MaterialEditor editor)
{
hidden = false;
for (int i = 0; i < editor.targets.Length; i++)
{
var mat = editor.targets[i] as Material;
if (mat != null)
{
for (int j = 0; j < argValue.Length; j++)
{
hidden |= !mat.IsKeywordEnabled(argValue[j]);
}
}
}
if (!hidden)
{
editor.DefaultShaderProperty(prop, label);
}
}
public override float GetPropertyHeight(MaterialProperty prop, string label, MaterialEditor editor)
{
return 0;
}
}
}