private void ClearSelect(int layer) { if (layer == 2 && _SelectedSub2 != null) { _SelectedSub2.CloseSubGO(); _SelectedSub2.UnSelected(); _SelectedSub2 = null; } if (layer == 1 && _SelectedSub1 != null) { _SelectedSub1.CloseSubGO(); _SelectedSub1.UnSelected(); foreach (var sub2 in _SubBtns[_SelectedSub1]) { sub2.gameObject.SetActive(false); } _SelectedSub1 = null; } }
public void Clear() { subIndex = 0; foreach (var keyValue in _SubBtns) { _Prefabs1.Enqueue(keyValue.Key); keyValue.Key.gameObject.SetActive(false); foreach (var item in keyValue.Value) { _Prefabs2.Enqueue(item); item.gameObject.SetActive(false); } } MenuContainer.sizeDelta = Vector2.zero; _IsInitBG = false; _SubBtns.Clear(); _SelectedSub1 = null; _SelectedSub2 = null; }
public void MenuClick(UIItemBase itemBase) { UISubMenuItem menuItem = itemBase as UISubMenuItem; if (menuItem == null) { return; } if (menuItem.SubLevel == 1) { if (menuItem != _SelectedSub1) { ClearSelect(1); ClearSelect(2); _SelectedSub1 = menuItem; _SelectedSub1.Selected(); if (_SubBtns[_SelectedSub1].Count > 0) { _SelectedSub1.OpenSubGO(); //foreach (var sub2 in _SubBtns[_SelectedSub1]) //{ // sub2.ShowMenu(); //} for (int i = 0; i < _SubBtns[_SelectedSub1].Count; ++i) { if (!_SubBtns[_SelectedSub1][i].ShowMenu()) { continue; } //if(_SelectedSub2 == null) _SelectedSub2 = _SubBtns[_SelectedSub1][i]; } if (_SelectedSub2 != null) { MenuClick(_SelectedSub2); _SelectedSub2.Selected(); _MenuClick.Invoke(_SelectedSub2.MenuObj); return; } } } else if (_SubBtns[_SelectedSub1].Count > 0) { ClearSelect(1); } } else { if (menuItem != _SelectedSub2) { ClearSelect(2); _SelectedSub2 = menuItem; _SelectedSub2.Selected(); } } _MenuClick.Invoke(menuItem.MenuObj); }