void ReadInputBinding(InputAction action, XmlNode inputBindingNode)
        {
            InputBinding binding = action.CreateNewBinding();

            foreach (XmlNode n in inputBindingNode.ChildNodes)
            {
                switch (n.LocalName)
                {
                case "Positive": binding.Positive = XMLTools.ReadAsEnum(n, KeyCode.None); break;

                case "Negative": binding.Negative = XMLTools.ReadAsEnum(n, KeyCode.None); break;

                case "DeadZone": binding.DeadZone = XMLTools.ReadAsFloat(n); break;

                case "Gravity": binding.Gravity = XMLTools.ReadAsFloat(n, 1.0f); break;

                case "Sensitivity": binding.Sensitivity = XMLTools.ReadAsFloat(n, 1.0f); break;

                case "Snap": binding.SnapWhenReadAsAxis = XMLTools.ReadAsBool(n); break;

                case "Invert": binding.InvertWhenReadAsAxis = XMLTools.ReadAsBool(n); break;

                case "UseNeg": binding.useNegativeAxisForButton = XMLTools.ReadAsBool(n); break;

                case "Rebindable": binding.rebindable = XMLTools.ReadAsBool(n); break;

                case "SensitivityEditable": binding.sensitivityEditable = XMLTools.ReadAsBool(n); break;

                case "InvertEditable": binding.invertEditable = XMLTools.ReadAsBool(n); break;

                case "Type": binding.Type = XMLTools.ReadAsEnum(n, InputType.KeyButton); break;

                case "Axis": binding.MouseAxis = XMLTools.ReadAsInt(n); break;

                case "GamepadButton": binding.GamepadButton = XMLTools.ReadAsEnum(n, GamepadButton.None); break;

                case "GamepadAxis": binding.GamepadAxis = XMLTools.ReadAsEnum(n, GamepadAxis.None); break;

                case "UpdateAsAxis": binding.updateAsAxis = XMLTools.ReadAsBool(n); break;

                case "UpdateAsButton": binding.updateAsButton = XMLTools.ReadAsBool(n); break;
                }
            }
        }