void ChangeBinding(LabeledBinding labeledBinding, ControlScheme scheme, Text label) { m_BindingToBeAssigned = labeledBinding.binding; InputSystem.ListenForBinding(BindInputControl); label.text = "..."; StartCoroutine(BindingLabelUpdater(label, labeledBinding, scheme)); }
bool IsNewBindingAssigned(LabeledBinding labeledBinding) { if (labeledBinding.binding != m_BindingToBeAssigned) { return(true); } else { return(false); } }
void ActivateBindingUIElement(int i, LabeledBinding labeledBinding, ControlScheme scheme) { BindingUIElement element = m_BindingUIElements[i]; element.actionText.text = labeledBinding.label; if (labeledBinding.binding == m_BindingToBeAssigned || labeledBinding.binding == null) { return; } else { element.bindingText.text = labeledBinding.binding.GetSourceName(scheme, false); Button button = element.bindingButton; button.onClick.RemoveAllListeners(); button.onClick.AddListener(delegate { ChangeBinding(labeledBinding, scheme, element.bindingText); }); } }
IEnumerator BindingLabelUpdater(Text label, LabeledBinding labeledBinding, ControlScheme scheme) { yield return(new WaitUntil(() => IsNewBindingAssigned(labeledBinding))); label.text = labeledBinding.binding.GetSourceName(scheme, false); }