/// <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); } }
/// <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); } } }
/// <summary> /// Funzione che spegne il menù corrente /// </summary> public void ClearCurrentMenu() { currentMenu.ToggleMenu(false); currentMenu = null; OnCurrentMenuChange(currentMenu); }
/// <summary> /// Funzione chiamata al camcbio di menù /// </summary> protected virtual void OnCurrentMenuChange(UIControllerBase _uIController) { }