private static void BadgeOverviewLoaded(UnityWebRequest req) { if (req.responseCode == 200) { JsonStringArray array = JsonUtility.FromJson <JsonStringArray>(req.downloadHandler.text); carouselMenuInstance = CarouselMenu.Show(); List <CustomMenuItem> items = new List <CustomMenuItem>(); for (int i = 0; i < array.array.Count; i++) { CustomMenuItem item = carouselMenuInstance.gameObject.AddComponent <CustomMenuItem>(); item.Init(stextMenuItem, new List <CustomMenuItem>(), false); item.onClickEvent.AddListener(OnCarouselItemClicked); item.Text = array.array[i]; item.MenuItemName = array.array[i]; items.Add(item); } carouselMenuInstance.rootMenu = items; ReplaceWithImages(); } }
public static CarouselMenu Show() { if (instance != null) { Destroy(instance.gameObject); } GameObject carouselInstance = (GameObject)Instantiate(Resources.Load("Carousel Menu")); instance = carouselInstance.GetComponent <CarouselMenu>(); return(instance); }
/// <summary> /// Displays a carousel menu and populates it with the available 3D models /// called when the web request finished in ShowCarouselMenu /// </summary> /// <param name="res">The result of the web request</param> private void AvailableModelsLoaded(UnityWebRequest res, object[] args) { WaitCursor.Hide(); if (res.responseCode != 200) { MessageBox.Show(LocalizationManager.Instance.ResolveString("Server is not responding") + Environment.NewLine + LocalizationManager.Instance.ResolveString("Could not list available 3D models"), MessageBoxType.ERROR); return; } if (carouselInstance == null) { carouselInstance = Instantiate(carouselMenu); } JsonStringArray array = JsonUtility.FromJson <JsonStringArray>(res.downloadHandler.text); if (array.array.Count == 0) { MessageBox.Show(LocalizationManager.Instance.ResolveString("There are no 3D models to show"), MessageBoxType.INFORMATION); return; } array.array.Sort(); List <CustomMenuItem> items = new List <CustomMenuItem>(); CarouselMenu carouselScript = carouselInstance.GetComponent <CarouselMenu>(); foreach (string modelName in array.array) { CustomMenuItem item = carouselInstance.AddComponent <CustomMenuItem>(); item.Init(carouselMenuStyle, new List <CustomMenuItem>(), false); item.onClickEvent.AddListener(delegate { OnCarouselItemClicked(modelName); }); item.Text = modelName; item.MenuItemName = modelName; items.Add(item); } if (carouselScript != null) { carouselScript.rootMenu = items; } Destroy(gameObject); }