Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
 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);
     }
 }
Ejemplo n.º 3
0
        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;
            }
        }
Ejemplo n.º 4
0
        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;
            }
        }