public void OnEnable()
    {
        matte = (ZEDGarbageMatte)target;

        editMode         = serializedObject.FindProperty("editMode");
        garbageMattePath = serializedObject.FindProperty("garbageMattePath");
        loadAtStart      = serializedObject.FindProperty("loadAtStart");
    }
    public override void OnInspectorGUI()
    {
        if (ToggleButtonStyleNormal == null)
        {
            ToggleButtonStyleNormal  = "Button";
            ToggleButtonStyleToggled = new GUIStyle(ToggleButtonStyleNormal);
            ToggleButtonStyleToggled.normal.background = ToggleButtonStyleToggled.active.background;
        }

        matte = (ZEDGarbageMatte)target;

        serializedObject.Update();
        EditorGUILayout.BeginHorizontal();
        if (GUILayout.Button("Edit", editMode.boolValue ? ToggleButtonStyleToggled : ToggleButtonStyleNormal))
        {
            editMode.boolValue = !editMode.boolValue;
            if (editMode.boolValue)
            {
                matte.EnterEditMode();
            }
        }
        EditorGUILayout.EndHorizontal();
        EditorGUILayout.BeginHorizontal();
        if (GUILayout.Button("Remove last point"))
        {
            matte.RemoveLastPoint();
        }
        EditorGUILayout.EndHorizontal();
        EditorGUILayout.BeginHorizontal();
        if (GUILayout.Button("Apply Garbage Matte"))
        {
            matte.ApplyGarbageMatte();
        }
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.BeginHorizontal();


        garbageMattePath.stringValue = EditorGUILayout.TextField("Garbage Matte File", garbageMattePath.stringValue);

        if (GUILayout.Button("...", optionsButtonBrowse))
        {
            matte.garbageMattePath = EditorUtility.OpenFilePanel("Load save file", "", "*");
            serializedObject.ApplyModifiedProperties();
        }



        loadAtStart.boolValue = EditorGUILayout.Toggle(GUIContent.none, loadAtStart.boolValue, GUILayout.MaxWidth(20));

        EditorGUILayout.EndHorizontal();

        EditorGUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace();
        if (GUILayout.Button("Save"))
        {
            matte.Save();
        }
        GUI.enabled = System.IO.File.Exists(matte.garbageMattePath);
        if (GUILayout.Button("Load"))
        {
            matte.Load();
        }
        GUI.enabled = true;
        EditorGUILayout.EndHorizontal();
        if (GUILayout.Button("Reset"))
        {
            matte.ResetPoints();
        }
        serializedObject.ApplyModifiedProperties();
    }