public override void OnEnter() { CurItem = new TabPanelItem { UiSprite = ToggleItems[DefaultItemIndex].UiSprite, Window = WindowManager.Instance.GetWindow(Utils.PrefabNameToWindow(ToggleItems[DefaultItemIndex].Window.name)), ItemIndex = ToggleItems[DefaultItemIndex].ItemIndex }; CurrIndex = CurItem.ItemIndex; CurItem.Window.gameObject.SetActive(true); normalSpriteName = CurItem.UiSprite.spriteName; CurItem.UiSprite.spriteName = HlightSpriteName; usedItems.Clear(); usedItems.Add(CurItem); }
/// <summary> /// The callback of each button click event in the tab panel. /// </summary> /// <param name="go">The sender of click event.</param> private void OnToggleItem(GameObject go) { var sprite = go.GetComponent<UISprite>(); if(sprite != CurItem.UiSprite) { CurItem.UiSprite.spriteName = normalSpriteName; CurItem.Window.gameObject.SetActive(false); var spriteList = new List<UISprite>(); for (var i = 0; i < usedItems.Count; i++) { spriteList.Add(usedItems[i].UiSprite); } if (!spriteList.Contains(sprite)) { var item = FindPanelItem(sprite); if (item != null) { CurrIndex = item.ItemIndex; OnToggle(); CurItem = new TabPanelItem { UiSprite = sprite, Window = WindowManager.Instance.GetWindow(Utils.PrefabNameToWindow(item.Window.name))}; CurItem.UiSprite.spriteName = HlightSpriteName; CurItem.Window.gameObject.SetActive(true); CurItem.ItemIndex = item.ItemIndex; usedItems.Add(CurItem); } } else { int k = spriteList.IndexOf(sprite); CurItem = usedItems[k]; CurrIndex = CurItem.ItemIndex; OnToggle(); CurItem.Window.gameObject.SetActive(true); CurItem.UiSprite.spriteName = HlightSpriteName; } } }