private IEnumerator DisableToggleBehaviorEnumerator(UIToggleBehavior behavior) { behavior.Ready = false; yield return(new WaitForSecondsRealtime(behavior.DisableInterval)); //wait for seconds realtime (ignore Unity's Time.Timescale) behavior.Ready = true; }
private void PrintBehaviorDebugMessage(UIToggleBehavior behavior, string action, bool debug = false) { if (DebugComponent || debug) { DDebug.Log("(" + name + ") - [" + (IsOn ? UIToggleState.On : UIToggleState.Off) + "]" + behavior.BehaviorType + " - " + action + ".", this); } }
private IEnumerator ExecuteToggleBehaviorEnumerator(UIToggleBehavior behavior) { if (!behavior.Enabled) { yield break; } if (!m_updateStartValuesRequired) //on the first interaction update the start values so that the reset method works as intended { UpdateStartValues(); m_updateStartValuesRequired = true; } // ReSharper disable once SwitchStatementMissingSomeCases switch (behavior.BehaviorType) { case UIToggleBehaviorType.OnClick: case UIToggleBehaviorType.OnPointerEnter: case UIToggleBehaviorType.OnPointerExit: if (!Interactable || UIInteractionsDisabled) { yield break; } break; } behavior.Invoke(this); NotifySystemOfTriggeredBehavior(IsOn ? UIToggleState.On : UIToggleState.Off, behavior.BehaviorType); // ReSharper disable once SwitchStatementMissingSomeCases switch (behavior.BehaviorType) { case UIToggleBehaviorType.OnClick: if (DeselectButtonAfterClick) { if (DebugComponent) { DDebug.Log("(" + name + ") - [" + (IsOn ? UIToggleState.On : UIToggleState.Off) + "]" + behavior.BehaviorType + " - Deselect Button.", this); } DeselectToggle(); } break; case UIToggleBehaviorType.OnPointerEnter: if (behavior.SelectButton) { if (DebugComponent) { DDebug.Log("(" + name + ") - [" + (IsOn ? UIToggleState.On : UIToggleState.Off) + "]" + behavior.BehaviorType + " - Select Button.", this); } SelectToggle(); } break; case UIToggleBehaviorType.OnPointerExit: if (behavior.DeselectButton) { if (DebugComponent) { DDebug.Log("(" + name + ") - [" + (IsOn ? UIToggleState.On : UIToggleState.Off) + "]" + behavior.BehaviorType + " - Deselect Button.", this); } DeselectToggle(); } break; } }
private void TriggerToggleBehavior(UIToggleBehavior behavior, bool debug = false) { switch (behavior.BehaviorType) { case UIToggleBehaviorType.OnClick: if (!Interactable || UIInteractionsDisabled) { return; } if (!behavior.Ready) { return; } if (behavior.Enabled) { PrintBehaviorDebugMessage(behavior, "triggered - ", debug); } ExecuteClick(debug); break; case UIToggleBehaviorType.OnPointerEnter: if (!Interactable || UIInteractionsDisabled) { return; } if (!behavior.Ready) { return; } if (behavior.Enabled) { PrintBehaviorDebugMessage(behavior, "triggered", debug); } ExecutePointerEnter(debug); break; case UIToggleBehaviorType.OnPointerExit: if (!Interactable || UIInteractionsDisabled) { return; } if (!behavior.Ready) { return; } if (behavior.Enabled) { PrintBehaviorDebugMessage(behavior, "triggered", debug); } ExecutePointerExit(debug); break; case UIToggleBehaviorType.OnSelected: if (behavior.Enabled) { PrintBehaviorDebugMessage(behavior, "triggered", debug); } ExecuteOnButtonSelected(debug); break; case UIToggleBehaviorType.OnDeselected: if (behavior.Enabled) { PrintBehaviorDebugMessage(behavior, "triggered", debug); } ExecuteOnButtonDeselected(debug); break; } }