public override void OnInspectorGUI()
        {
            serializedObject.Update();
            UpdateControlSchemeNames();

            EditorGUILayout.Space();
            DrawControlSchemeDropdown(m_playerOneDefault);
            DrawControlSchemeDropdown(m_playerTwoDefault);
            DrawControlSchemeDropdown(m_playerThreeDefault);
            DrawControlSchemeDropdown(m_playerFourDefault);
            m_runScanningInLateUpdate.boolValue = EditorGUILayout.Popup("Scanning Mode", m_runScanningInLateUpdate.boolValue ? 1 : 0, m_scanningOptions) == 1;
            EditorGUILayout.PropertyField(m_ignoreTimescale);

            EditorGUILayout.Space();
            GUILayout.BeginHorizontal();
            GUI.enabled = !InputEditor.IsOpen;
            if (GUILayout.Button("Input\nEditor", GUILayout.Height(BUTTON_HEIGHT)))
            {
                InputEditor.OpenWindow(m_inputManager);
            }
            GUI.enabled = true;
            if (GUILayout.Button(m_createSnapshotInfo, GUILayout.Height(BUTTON_HEIGHT)))
            {
                EditorToolbox.CreateSnapshot(m_inputManager);
            }
            GUI.enabled = EditorToolbox.CanLoadSnapshot();
            if (GUILayout.Button("Restore\nSnapshot", GUILayout.Height(BUTTON_HEIGHT)))
            {
                EditorToolbox.LoadSnapshot(m_inputManager);
            }
            GUI.enabled = true;
            GUILayout.EndHorizontal();

            serializedObject.ApplyModifiedProperties();
        }
        private void OnEnable()
        {
            m_name               = serializedObject.FindProperty("m_name");
            m_comment            = serializedObject.FindProperty("m_comment");
            m_dpadType           = serializedObject.FindProperty("m_dpadType");
            m_triggerType        = serializedObject.FindProperty("m_triggerType");
            m_leftStickButton    = serializedObject.FindProperty("m_leftStickButton");
            m_rightStickButton   = serializedObject.FindProperty("m_rightStickButton");
            m_leftBumperButton   = serializedObject.FindProperty("m_leftBumperButton");
            m_rightBumperButton  = serializedObject.FindProperty("m_rightBumperButton");
            m_leftTriggerButton  = serializedObject.FindProperty("m_leftTriggerButton");
            m_rightTriggerButton = serializedObject.FindProperty("m_rightTriggerButton");
            m_dpadUpButton       = serializedObject.FindProperty("m_dpadUpButton");
            m_dpadDownButton     = serializedObject.FindProperty("m_dpadDownButton");
            m_dpadLeftButton     = serializedObject.FindProperty("m_dpadLeftButton");
            m_dpadRightButton    = serializedObject.FindProperty("m_dpadRightButton");
            m_backButton         = serializedObject.FindProperty("m_backButton");
            m_startButton        = serializedObject.FindProperty("m_startButton");
            m_actionTopButton    = serializedObject.FindProperty("m_actionTopButton");
            m_actionBottomButton = serializedObject.FindProperty("m_actionBottomButton");
            m_actionLeftButton   = serializedObject.FindProperty("m_actionLeftButton");
            m_actionRightButton  = serializedObject.FindProperty("m_actionRightButton");
            m_leftStickXAxis     = serializedObject.FindProperty("m_leftStickXAxis");
            m_leftStickYAxis     = serializedObject.FindProperty("m_leftStickYAxis");
            m_rightStickXAxis    = serializedObject.FindProperty("m_rightStickXAxis");
            m_rightStickYAxis    = serializedObject.FindProperty("m_rightStickYAxis");
            m_dpadXAxis          = serializedObject.FindProperty("m_dpadXAxis");
            m_dpadYAxis          = serializedObject.FindProperty("m_dpadYAxis");
            m_leftTriggerAxis    = serializedObject.FindProperty("m_leftTriggerAxis");
            m_rightTriggerAxis   = serializedObject.FindProperty("m_rightTriggerAxis");

            m_buttonNames = EditorToolbox.GenerateJoystickButtonNames();
            m_axisNames   = EditorToolbox.GenerateJoystickAxisNames();
        }