예제 #1
0
    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;
        }
    }
예제 #2
0
    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;
    }
예제 #3
0
    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);
    }