Пример #1
0
        /// <summary>
        /// Rebuilds the contents of the panel in response to items being added.
        /// </summary>
        private void RebuildPanel()
        {
            if (Items.Count == 0)
            {
                return;
            }

            int indx = _panelItems.Count;

            while (_panelItems.Count < Items.Count)
            {
                GameObject newItem = Instantiate(_itemTemplate) as GameObject;
                newItem.name = "Item " + indx;
                newItem.transform.SetParent(_itemsPanelRT, false);

                _panelItems.Add(new DropDownListButton(newItem));
                indx++;
            }
            for (int i = 0; i < _panelItems.Count; i++)
            {
                if (i < Items.Count)
                {
                    DropDownListItem item = Items[i];

                    _panelItems[i].txt.text = item.Caption;
                    if (item.IsDisabled)
                    {
                        _panelItems[i].txt.color = disabledTextColor;
                    }

                    if (_panelItems[i].btnImg != null)
                    {
                        _panelItems[i].btnImg.sprite = null;                                                   //hide the button image
                    }
                    _panelItems[i].img.sprite = item.Image;
                    _panelItems[i].img.color  = (item.Image == null) ? new Color(1, 1, 1, 0)
                                                                                                                                        : item.IsDisabled ? new Color(1, 1, 1, .5f)
                                                                                                                                                                          : Color.white;
                    int ii = i;                     //have to copy the variable for use in anonymous function
                    _panelItems[i].btn.onClick.RemoveAllListeners();
                    _panelItems[i].btn.onClick.AddListener(() =>
                    {
                        OnItemClicked(ii);
                        if (item.OnSelect != null)
                        {
                            item.OnSelect();
                        }
                    });
                }
                _panelItems[i].gameobject.SetActive(i < Items.Count);                // if we have more thanks in the panel than Items in the list hide them
            }
        }
Пример #2
0
        private void RebuildPanel()
        {
            if (Items.Count == 0)
            {
                return;
            }
            int num = _panelItems.Count;

            while (_panelItems.Count < Items.Count)
            {
                GameObject gameObject = Object.Instantiate(_itemTemplate);
                gameObject.name = "Item " + num;
                gameObject.transform.SetParent(_itemsPanelRT, worldPositionStays: false);
                _panelItems.Add(new DropDownListButton(gameObject));
                num++;
            }
            for (int i = 0; i < _panelItems.Count; i++)
            {
                if (i < Items.Count)
                {
                    DropDownListItem item = Items[i];
                    _panelItems[i].txt.text = item.Caption;
                    if (item.IsDisabled)
                    {
                        _panelItems[i].txt.color = disabledTextColor;
                    }
                    if (_panelItems[i].btnImg != null)
                    {
                        _panelItems[i].btnImg.sprite = null;
                    }
                    _panelItems[i].img.sprite = item.Image;
                    _panelItems[i].img.color  = ((item.Image == null) ? new Color(1f, 1f, 1f, 0f) : ((!item.IsDisabled) ? Color.white : new Color(1f, 1f, 1f, 0.5f)));
                    int ii = i;
                    _panelItems[i].btn.onClick.RemoveAllListeners();
                    _panelItems[i].btn.onClick.AddListener(delegate
                    {
                        OnItemClicked(ii);
                        if (item.OnSelect != null)
                        {
                            item.OnSelect();
                        }
                    });
                }
                _panelItems[i].gameobject.SetActive(i < Items.Count);
            }
        }