public bool IsKeyUsedInAnyAction(KeyCode key, out KeyUsageResult usage) { usage = new KeyUsageResult(); for (int ai = 0; ai < m_actions.Count; ai++) { for (int bi = 0; bi < m_actions[ai].Bindings.Count; bi++) { InputBinding binding = m_actions[ai].Bindings[bi]; bool isTheRightType = binding.Type == InputType.Button || binding.Type == InputType.DigitalAxis; bool isUsingTheKey = binding.Positive == key || binding.Negative == key; if (isTheRightType && isUsingTheKey) { usage = new KeyUsageResult { ControlSchemeName = m_name, ActionIndex = ai, BindingIndex = bi }; return(true); } } } return(false); }
public static bool IsKeyUsedInAnyControlScheme(KeyCode key, out KeyUsageResult usage) { usage = KeyUsageResult.None; foreach (var scheme in m_instance.m_controlSchemes) { if (scheme.IsKeyUsedInAnyAction(key, out usage)) { return(true); } } return(false); }
public static bool IsKeyUsedInControlScheme(string controlSchemeName, KeyCode key, out KeyUsageResult usage) { ControlScheme scheme = GetControlScheme(controlSchemeName); usage = KeyUsageResult.None; return(scheme != null?scheme.IsKeyUsedInAnyAction(key, out usage) : false); }