MenuItems_Conditional_Editor.cs
using UnityEngine; using UnityEditor; public class MenuItems_Conditional_Editor { [MenuItem("Conditional Menu/Process Material")] public static void DoSomethingWithMaterial() { } //Use the same name in MenuItem and pass 'true' to the second argument to mark the method as Validator. //The return type of method is bool and bool value depends on the type of selected object. //The menu item will be enabled when the selected object is a material otherwise disabled. [MenuItem("Conditional Menu/Process Material", true)] public static bool ProcessMaterialValidation() { return Selection.activeObject.GetType() == typeof(Material); } }