public static InputAction CreateDigitalAxis(string controlSchemeName, string axisName, KeyCode positive, KeyCode negative, KeyCode altPositive, KeyCode altNegative, float gravity, float sensitivity) { ControlScheme scheme = GetControlScheme(controlSchemeName); if (scheme == null) { Debug.LogError(string.Format("A control scheme named \'{0}\' does not exist", controlSchemeName)); return(null); } if (m_instance.m_actionLookup[controlSchemeName].ContainsKey(axisName)) { Debug.LogError(string.Format("The control scheme named {0} already contains an action named {1}", controlSchemeName, axisName)); return(null); } InputAction action = scheme.CreateNewAction(axisName); InputBinding primary = action.CreateNewBinding(); primary.Type = InputType.DigitalAxis; primary.Positive = positive; primary.Negative = negative; primary.Gravity = gravity; primary.Sensitivity = sensitivity; InputBinding secondary = action.CreateNewBinding(primary); secondary.Positive = altPositive; secondary.Negative = altNegative; action.Initialize(); m_instance.m_actionLookup[controlSchemeName][axisName] = action; return(action); }
public static InputAction CreateButton(string controlSchemeName, string buttonName, KeyCode primaryKey, KeyCode secondaryKey) { ControlScheme scheme = GetControlScheme(controlSchemeName); if (scheme == null) { Debug.LogError(string.Format("A control scheme named \'{0}\' does not exist", controlSchemeName)); return(null); } if (m_instance.m_actionLookup[controlSchemeName].ContainsKey(buttonName)) { Debug.LogError(string.Format("The control scheme named {0} already contains an action named {1}", controlSchemeName, buttonName)); return(null); } InputAction action = scheme.CreateNewAction(buttonName); InputBinding primary = action.CreateNewBinding(); primary.Type = InputType.Button; primary.Positive = primaryKey; InputBinding secondary = action.CreateNewBinding(primary); secondary.Positive = secondaryKey; action.Initialize(); m_instance.m_actionLookup[controlSchemeName][buttonName] = action; return(action); }
public static InputAction CreateRemoteAxis(string controlSchemeName, string axisName) { ControlScheme scheme = GetControlScheme(controlSchemeName); if (scheme == null) { Debug.LogError(string.Format("A control scheme named \'{0}\' does not exist", controlSchemeName)); return(null); } if (m_instance.m_actionLookup[controlSchemeName].ContainsKey(axisName)) { Debug.LogError(string.Format("The control scheme named {0} already contains an action named {1}", controlSchemeName, axisName)); return(null); } InputAction action = scheme.CreateNewAction(axisName); InputBinding binding = action.CreateNewBinding(); binding.Type = InputType.RemoteAxis; action.Initialize(); m_instance.m_actionLookup[controlSchemeName][axisName] = action; return(action); }
public static InputAction CreateMouseAxis(string controlSchemeName, string axisName, int axis, float sensitivity) { ControlScheme scheme = GetControlScheme(controlSchemeName); if (scheme == null) { Debug.LogError(string.Format("A control scheme named \'{0}\' does not exist", controlSchemeName)); return(null); } if (m_instance.m_actionLookup[controlSchemeName].ContainsKey(axisName)) { Debug.LogError(string.Format("The control scheme named {0} already contains an action named {1}", controlSchemeName, axisName)); return(null); } if (axis < 0 || axis >= InputBinding.MAX_MOUSE_AXES) { Debug.LogError("Mouse axis is out of range. Cannot create new mouse axis."); return(null); } InputAction action = scheme.CreateNewAction(axisName); InputBinding binding = action.CreateNewBinding(); binding.Type = InputType.MouseAxis; binding.Axis = axis; binding.Sensitivity = sensitivity; action.Initialize(); m_instance.m_actionLookup[controlSchemeName][axisName] = action; return(action); }
public static InputAction CreateAnalogButton(string controlSchemeName, string buttonName, int joystick, int axis) { ControlScheme scheme = GetControlScheme(controlSchemeName); if(scheme == null) { Debug.LogError(string.Format("A control scheme named \'{0}\' does not exist", controlSchemeName)); return null; } if(m_instance.m_actionLookup[controlSchemeName].ContainsKey(buttonName)) { Debug.LogError(string.Format("The input configuration named {0} already contains an action named {1}", controlSchemeName, buttonName)); return null; } if(axis < 0 || axis >= InputBinding.MAX_JOYSTICK_AXES) { Debug.LogError("Joystick axis is out of range. Cannot create new analog button."); return null; } if(joystick < 0 || joystick >= InputBinding.MAX_JOYSTICKS) { Debug.LogError("Joystick is out of range. Cannot create new analog button."); return null; } InputAction action = scheme.CreateNewAction(buttonName); InputBinding binding = action.CreateNewBinding(); binding.Type = InputType.AnalogButton; binding.Joystick = joystick; binding.Axis = axis; action.Initialize(); m_instance.m_actionLookup[controlSchemeName][buttonName] = action; return action; }
public static InputAction CreateAnalogAxis(string controlScheme, string axisName, int joystick, int axis, float sensitivity, float deadZone) { ControlScheme scheme = GetControlScheme(controlScheme); if (scheme == null) { Debug.LogError(string.Format("A control scheme named \'{0}\' does not exist", controlScheme)); return(null); } if (m_instance.m_actionLookup[controlScheme].ContainsKey(axisName)) { Debug.LogError(string.Format("The control scheme named {0} already contains an action named {1}", controlScheme, axisName)); return(null); } if (axis < 0 || axis >= InputBinding.MAX_JOYSTICK_AXES) { Debug.LogError("Joystick axis is out of range. Cannot create new analog axis."); return(null); } if (joystick < 0 || joystick >= InputBinding.MAX_JOYSTICKS) { Debug.LogError("Joystick is out of range. Cannot create new analog axis."); return(null); } InputAction action = scheme.CreateNewAction(axisName); InputBinding binding = action.CreateNewBinding(); binding.Type = InputType.AnalogAxis; binding.Axis = axis; binding.Joystick = joystick; binding.DeadZone = deadZone; binding.Sensitivity = sensitivity; action.Initialize(); m_instance.m_actionLookup[controlScheme][axisName] = action; return(action); }
private void ReadInputAction_V1(ControlScheme scheme, XmlNode node) { string name = ReadAttribute(node, "name", "Unnamed Axis"); InputAction action = scheme.CreateNewAction(name); InputBinding binding = action.CreateNewBinding(); foreach (XmlNode child in node.ChildNodes) { switch (child.LocalName) { case "description": action.Description = child.InnerText; break; case "positive": binding.Positive = InputBinding.StringToKey(child.InnerText); break; case "negative": binding.Negative = InputBinding.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 = InputBinding.StringToInputType(child.InnerText); break; case "axis": binding.Axis = ReadAsInt(child); break; case "joystick": binding.Joystick = ReadAsInt(child); break; } } if (binding.Type == InputType.Button || binding.Type == InputType.DigitalAxis) { XmlNode altPositiveNode = SelectSingleNode(node, "altPositive"); XmlNode altNegativeNode = SelectSingleNode(node, "altNegative"); InputBinding secondary = action.CreateNewBinding(binding); secondary.Positive = InputBinding.StringToKey(altPositiveNode.InnerText); secondary.Negative = InputBinding.StringToKey(altNegativeNode.InnerText); } }
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 = InputBinding.StringToKey(child.InnerText); break; case "Negative": binding.Negative = InputBinding.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 = InputBinding.StringToInputType(child.InnerText); break; case "Axis": binding.Axis = ReadAsInt(child); break; case "Joystick": binding.Joystick = ReadAsInt(child); break; case "GamepadButton": binding.GamepadButton = InputBinding.StringToGamepadButton(child.InnerText); break; case "GamepadAxis": binding.GamepadAxis = InputBinding.StringToGamepadAxis(child.InnerText); break; case "GamepadPlayer": binding.GamepadIndex = InputBinding.StringToGamepadIndex(child.InnerText); break; } } }