private bool TryOpenMenu()
    {
        bool result = false;

        if ((TargetMenuRoot != null) &&
            (TargetMenuRoot.activeSelf == false))
        {
            TargetMenuRoot.SetActive(true);

            if (DebugEnabled)
            {
                Debug.Log("Opened menu.");
            }

            if (ControllerMenuOpened != null)
            {
                var eventArgs = new ControllerMenuOpenedEventArgs();

                ControllerMenuOpened(this, eventArgs);
            }

            result = true;
        }

        return(result);
    }
 private void OnControllerMenuOpened(
     object sender,
     ControllerMenuOpenedEventArgs eventArgs)
 {
     if ((Object.ReferenceEquals(sender, this) == false) &&
         CloseWhenAnotherMenuOpens)
     {
         TryCloseMenu();
     }
 }