public override void OnEnable()
        {
            base.OnEnable();

            NSTSampleController _target = (NSTSampleController)target;
            bool isRoot = _target.transform.parent == null;

            // If targetPreset == -1 then this has been run before
            if ((int)_target.keyPresets == -1)             //NSTSampleController.NSTControllerPresets.None)
            {
                _target.ApplyPreset(_target.mapping, isRoot ? NSTControllerPresets.FreeController : NSTControllerPresets.Secondary);
            }
            lastSelectedPreset = (int)_target.keyPresets;
        }
        public override void OnInspectorGUI()
        {
            NSTSampleController _target = (NSTSampleController)target;

            // If the preset selection has changed... apply that presets values (unless its Custom ... custom will not overwrite user settings)
            if (lastSelectedPreset != (int)_target.keyPresets && _target.keyPresets != NSTControllerPresets.Custom)
            {
                _target.ApplyPreset(_target.mapping, _target.keyPresets);
            }

            // if there are differences in the input mappings from the preset, switch the selection to Custom so they don't keep getting overwritten.
            else if (_target.keyPresets != NSTControllerPresets.Custom && _target.CompareToPreset(_target.keyPresets) == false)
            {
                _target.keyPresets = NSTControllerPresets.Custom;
            }

            lastSelectedPreset = (int)_target.keyPresets;

            base.OnInspectorGUI();
        }