static void HideScreen(UIScreenBase screen) { if (!screen.IsHidden) { screen.Hide(); } }
public static void ShowScreenInst(UIScreenBase screen) { foreach (var s in Instance.Screens) { if (s == screen) { if (screen.IsHidden) { screen.Show(); } } else { if (!(s is PopupBase)) { HideScreen(s); } } } }
public static T ShowScreenInst <T>() where T : UIScreenBase { UIScreenBase retVal = null; foreach (var screen in Instance.Screens) { if (screen is T) { ShowScreenInst(screen); retVal = screen; } } if (retVal == null) { Debug.LogError($"Can't find {typeof(T)} screen under {Instance.gameObject.name}"); } return(retVal as T); }