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; } } }