private void ReadInputBinding_V2(InputAction action, XmlNode node)
        {
            InputBinding binding = action.CreateNewBinding();

            foreach (XmlNode child in node.ChildNodes)
            {
                switch (child.LocalName)
                {
                case "Positive":
                    binding.Positive = StringToKey(child.InnerText);
                    break;

                case "Negative":
                    binding.Negative = StringToKey(child.InnerText);
                    break;

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

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

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

                case "Snap":
                    binding.Snap = ReadAsBool(child);
                    break;

                case "Invert":
                    binding.Invert = ReadAsBool(child);
                    break;

                case "Type":
                    binding.Type = StringToInputType(child.InnerText);
                    break;

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

                case "GamepadButton":
                    binding.GamepadButton = StringToGamepadButton(child.InnerText);
                    break;

                case "GamepadAxis":
                    binding.GamepadAxis = StringToGamepadAxis(child.InnerText);
                    break;
                }
            }
        }
        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;
                }
            }
        }