Ejemplo n.º 1
0
    /// <summary>
    /// Funzione che setta il menù corrente a quello del tipo passato.
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <returns>Ritorna la conferma dell'azione eseguita</returns>
    public bool SetCurrentMenu <T>() where T : UIControllerBase
    {
        UIControllerBase menuToSet = GetMenu <T>();

        if (menuToSet == null)
        {
            // non ho trovato il tipo del menù
            return(false);
        }
        else if (currentMenu != null && currentMenu.GetType() == typeof(T))
        {
            // sto riaccendendo il menù corrente
            return(true);
        }
        else
        {
            // cambio effettivamente menù
            for (int i = 0; i < menus.Count; i++)
            {
                menus[i].ToggleMenu(false);
            }

            currentMenu = menuToSet;
            currentMenu.ToggleMenu(true);
            OnCurrentMenuChange(currentMenu);
            return(true);
        }
    }
Ejemplo n.º 2
0
 /// <summary>
 /// Funzione che spegne il menù corrente
 /// </summary>
 public virtual void ClearCurrentMenu()
 {
     if (currentMenu != null)
     {
         currentMenu.ToggleMenu(false);
     }
     currentMenu = null;
     OnCurrentMenuChange(currentMenu);
 }
Ejemplo n.º 3
0
    /// <summary>
    /// Funzione che setta il menù corrente a quello del tipo passato eseguendo un fade.
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <param name="_fadeInTime"></param>
    /// <param name="_fadeOutTime"></param>
    /// <param name="_fadeInCallBack"></param>
    /// <param name="_fadeOutCallBack"></param>
    /// <returns></returns>
    public bool SetCurrentMenu <T>(float _fadeInTime = 0, float _fadeOutTime = 0, Action _fadeInCallBack = null, Action _fadeOutCallBack = null) where T : UIControllerBase
    {
        if (fadeImage == null)
        {
            return(false);
        }

        // se entrambi i tempi sono minori di zero eseguo la funzione base senza fade
        if (_fadeInTime <= 0 && _fadeOutTime <= 0)
        {
            return(SetCurrentMenu <T>());
        }
        else
        {
            UIControllerBase menuToSet = GetMenu <T>();
            if (menuToSet == null)
            {
                // non ho trovato il tipo del menù
                return(false);
            }
            else if (currentMenu != null && currentMenu.GetType() == typeof(T))
            {
                // sto riaccendendo il menù corrente
                return(true);
            }
            else
            {
                // cambio effettivamente menù
                for (int i = 0; i < menus.Count; i++)
                {
                    menus[i].ToggleMenu(false);
                }

                // lancio il fade in del pannello
                fadeImage.DOFade(1, _fadeInTime).OnComplete(() =>
                {
                    // eseguo il cambio del menù attivo
                    currentMenu = menuToSet;
                    currentMenu.ToggleMenu(true);
                    OnCurrentMenuChange(currentMenu);

                    // al completamento del fade in, se non è nulla, esegue la callback sul fade in
                    _fadeInCallBack?.Invoke();

                    //lancio il fade out del pannello
                    fadeImage.DOFade(0, _fadeOutTime).OnComplete(() =>
                    {
                        // al completamento del fade in, se non è nulla, esegue la callback sul fade out
                        _fadeOutCallBack?.Invoke();
                    });
                });
                return(true);
            }
        }
    }