private void addMenuItem(XsollaGoodsGroup pGoodsGroup, Action <XsollaGoodsGroup> pSelectItem, GameObject pParent) { GameObject baseMenuItem = Resources.Load(PREFAB_MENU_ITEM) as GameObject; GameObject lMenuItem = Instantiate(baseMenuItem); RadioButton lController = lMenuItem.GetComponent <RadioButton>(); lController.init("", pGoodsGroup.GetName(), RadioButton.RadioType.GOODS_ITEM, delegate { mRadioGroupController.UnselectAll(); pSelectItem(pGoodsGroup); }, pGoodsGroup.mLevel); mRadioGroupController.AddButton(lController); // Задаем является ли родителем lController.setParentState(pGoodsGroup.mChildren.Count > 0); // Заносим детей if (pGoodsGroup.mChildren.Count > 0) { pGoodsGroup.mChildren.GetItemsList().ForEach((item) => { addMenuItem(item, pSelectItem, lController.mChildrenContainer); }); } lMenuItem.transform.SetParent(pParent.transform); Resizer.SetDefScale(lMenuItem); }
private void addMenuBtn(string pIcon, string pName, RadioButton.RadioType pType, bool pOnlyAction = false) { GameObject menuItemPrefab = Instantiate(Resources.Load(PREFAB_VIEW_MENU_ITEM)) as GameObject; RadioButton controller = menuItemPrefab.GetComponent <RadioButton>(); controller.init(pIcon, pName, pType, delegate { onNavMenuItemClick(pType, pOnlyAction); }, 0, pOnlyAction); menuItemPrefab.transform.SetParent(mNavMenuPanel.transform); Resizer.SetDefScale(menuItemPrefab); mRadioGroupController.AddButton(menuItemPrefab.GetComponent <RadioButton>()); }
//TODO minimize private void InitMenu(XsollaUtils utils) { _radioController = menuTransform.gameObject.AddComponent <RadioGroupController> (); GameObject menuItemPrefab = Resources.Load(PREFAB_VIEW_MENU_ITEM) as GameObject; GameObject menuItemIconPrefab = Resources.Load(PREFAB_VIEW_MENU_ITEM_ICON) as GameObject; GameObject menuItemEmptyPrefab = Resources.Load(PREFAB_VIEW_MENU_ITEM_EMPTY) as GameObject; // menuTransform = mainScreen.GetComponentInChildren<HorizontalLayoutGroup> ().gameObject.transform; Dictionary <string, XComponent> components = utils.GetProject().components; XsollaPaystation2 paystation2 = utils.GetSettings().paystation2; bool isGoodsRequred = components.ContainsKey("items") && components ["items"].IsEnabled; if (isGoodsRequred) { GameObject menuItemGoods = Instantiate(menuItemPrefab) as GameObject; Text[] texts = menuItemGoods.GetComponentsInChildren <Text>(); texts[0].text = ""; texts[1].text = utils.GetTranslations().Get(XsollaTranslations.VIRTUALITEM_PAGE_TITLE); menuItemGoods.GetComponent <Button>().onClick.AddListener(delegate { LoadGoodsGroups(); _radioController.SelectItem(0); }); menuItemGoods.transform.SetParent(menuTransform); _radioController.AddButton(menuItemGoods.GetComponent <RadioButton>()); } //HACK with Unity 5.3 //bool isPricepointsRequired = components.ContainsKey("virtual_currency") && components ["virtual_currency"].IsEnabled; if (paystation2.pricepointsAtFirst != null && paystation2.pricepointsAtFirst.Equals("1")) { GameObject menuItemPricepoints = Instantiate(menuItemPrefab) as GameObject; Text[] texts = menuItemPricepoints.GetComponentsInChildren <Text>(); texts[0].text = ""; texts[1].text = utils.GetTranslations().Get(XsollaTranslations.PRICEPOINT_PAGE_TITLE); menuItemPricepoints.GetComponent <Button>().onClick.AddListener(delegate { LoadShopPricepoints(); _radioController.SelectItem(1); }); menuItemPricepoints.transform.SetParent(menuTransform); _radioController.AddButton(menuItemPricepoints.GetComponent <RadioButton>()); } if (components.ContainsKey("coupons") && components["coupons"].IsEnabled) { GameObject menuItemCoupons = Instantiate(menuItemPrefab) as GameObject; Text[] texts = menuItemCoupons.GetComponentsInChildren <Text>(); texts[0].text = ""; texts[1].text = utils.GetTranslations().Get(XsollaTranslations.COUPON_PAGE_TITLE); menuItemCoupons.GetComponent <Button>().onClick.AddListener(delegate { ShowRedeemCoupon(); _radioController.SelectItem(2); }); menuItemCoupons.transform.SetParent(menuTransform); _radioController.AddButton(menuItemCoupons.GetComponent <RadioButton>()); } GameObject menuItemEmpty = Instantiate(menuItemEmptyPrefab); menuItemEmpty.transform.SetParent(menuTransform); GameObject menuItemFavorite = Instantiate(menuItemIconPrefab); menuItemFavorite.GetComponentInChildren <Text> ().text = ""; menuItemFavorite.GetComponent <Button>().onClick.AddListener(delegate { _shopViewController.SetTitle(utils.GetTranslations().Get(XsollaTranslations.VIRTUALITEMS_TITLE_FAVORITE)); LoadFavorites(); _radioController.SelectItem(3); }); menuItemFavorite.transform.SetParent(menuTransform); _radioController.AddButton(menuItemFavorite.GetComponent <RadioButton>()); }