public UIActionRegisterArgs(UIMenuItemInteractionType type = UIMenuItemInteractionType.MouseClick, KeyCode key = KeyCode.None)
 {
     Key = key;
     InteractionType = type;
 }
    void AddAction( UIMenuItemInteractionType type, 
                    DelegateMenuItemClick mouseClickAction = null, 
                    DelegateMenuKeypress keyPressAction = null )
    {
        if (keyPressAction == null && mouseClickAction == null)
        {
           //Debug.LogError("Passed incorrect arguments to AddAction. Action needs a listener!");
            return;
        }

        switch (type)
        {
        case UIMenuItemInteractionType.None:
            //OnMenuItemActive += StartTransitionOn;
            break;
            case UIMenuItemInteractionType.KeyboardPress:
            {
                if (keyPressAction != null)
                {
                    OnMenuKeypressHandle += keyPressAction;
                }
                else
                {
                   //Debug.LogWarning("A menu key press action specified is invalid.");
                }

                break;
            }
            case UIMenuItemInteractionType.MouseClick:
            {
                if (mouseClickAction != null)
                {
                    OnMenuItemClickHandle += mouseClickAction;
                }
                else
                {
                   //Debug.LogWarning("A menu item click action specified is invalid.");
                }
                break;
            }
            case UIMenuItemInteractionType.MouseKeyboard:
            {
                if (mouseClickAction != null && keyPressAction != null)
                {
                    OnMenuItemClickHandle += mouseClickAction;
                    OnMenuKeypressHandle += keyPressAction;
                }
                else
                {
                   //Debug.LogWarning("A menu item mouse + keyboard action specified is invalid.");
                }
                break;
            }
        }
    }