public override bool OnGUI()
        {
            AgentSamplePathPosition _target = (AgentSamplePathPosition)target;

            bool edited = false;

            EditField("gameObject");

            edited = EditMaskField(_target);

            EditField("maxDistance");

            EditField("reachedBeforeMaxDistance");
            EditField("reachedBeforeMaxDistanceEvent");
            EditField("reachedAfterMaxDistanceEvent");

            EditField("position");
            EditField("normal");
            EditField("distance");
            EditField("mask");
            EditField("hit");


            return(GUI.changed || edited);
        }
        bool EditMaskField(AgentSamplePathPosition _target)
        {
            bool edited = false;

            if (_target.passableMask == null)
            {
                _target.passableMask       = new FsmInt();
                _target.passableMask.Value = -1;
            }

            if (_target.passableMask.UseVariable)
            {
                EditField("passableMask");
            }
            else
            {
                GUILayout.BeginHorizontal();

                LayerMask _mask = _target.passableMask.Value;

                if (_maskField == null)
                {
                    _maskField = new PlayMakerNavMeshMaskField();
                }
                LayerMask _newMask = _maskField.LayerMaskField("Passable Mask", _mask, true);


                if (_newMask != _mask)
                {
                    edited = true;
                    _target.passableMask.Value = _newMask.value;
                }

                if (PlayMakerEditor.FsmEditorGUILayout.MiniButtonPadded(PlayMakerEditor.FsmEditorContent.VariableButton))
                {
                    _target.passableMask.UseVariable = true;
                }
                GUILayout.EndHorizontal();
            }

            return(edited);
        }