static void CreateAsset()
    {
        TagInputFilter item = EditorUtil.CreateAsset <TagInputFilter>(NMBEditorUtil.AssetLabel);

        EditorUtility.FocusProjectWindow();
        Selection.activeObject = item;
    }
    /// <summary>
    /// Controls behavior of the inspector.
    /// </summary>
    public override void OnInspectorGUI()
    {
        TagInputFilter targ = (TagInputFilter)target;

        // Has someone done something naughty?

        if (targ.tags == null)
        {
            Debug.LogError(targ.name + "Data null reference. Resetting component.");
            targ.tags = new List <string>();
        }

        EditorGUILayout.Separator();

        targ.Priority = EditorGUILayout.IntField("Priority", targ.Priority);

        EditorGUILayout.Separator();

        targ.recursive = EditorGUILayout.Toggle("Recursive", targ.recursive);

        EditorGUILayout.Separator();

        EditorUtil.OnGUIManageStringList(targ.tags, true);

        EditorGUILayout.Separator();

        string msg = "Input Build Processor\n\nFilters out components with the specified tags.";

        if (targ.recursive)
        {
            msg +=
                "\n\nRecursive: A component will be filtered out if any of its parents"
                + " have one of the tags.";
        }

        GUILayout.Box(msg, EditorUtil.HelpStyle, GUILayout.ExpandWidth(true));

        EditorGUILayout.Separator();

        if (GUI.changed)
        {
            EditorUtility.SetDirty(target);
        }
    }