コード例 #1
0
    public void Show(SaveableNumberDictionary <int> items, Action <int> selectCallback = null, Func <Jyx2Item, bool> filter = null)
    {
        HSUnityTools.DestroyChildren(m_Container);
        callback = selectCallback;
        foreach (var kv in items)
        {
            string id    = kv.Key;
            int    count = kv.Value;

            var item = ConfigTable.Get <Jyx2Item>(id);
            if (item == null)
            {
                Debug.LogError("调用了错误的物品,id=" + id);
                continue;
            }

            //过滤器逻辑
            if (filter != null && filter(item) == false)
            {
                continue;
            }

            var itemUI = Jyx2ItemUI.Create(int.Parse(id), count);
            itemUI.transform.SetParent(m_Container);
            var btn = itemUI.GetComponent <Button>();

            btn.onClick.RemoveAllListeners();
            btn.onClick.AddListener(() => {
                SelectItem(itemUI);
            });
        }
    }
コード例 #2
0
    void SelectItem(Jyx2ItemUI itemUI)
    {
        var item = itemUI.GetItem();

        m_InfoText.text = item.Name + "\n\n" + item.Desc;
        currentItem     = item;
    }
コード例 #3
0
 protected override void OnHidePanel()
 {
     base.OnHidePanel();
     m_selectItem = null;
     m_callback   = null;
     m_filter     = null;
     HSUnityTools.DestroyChildren(ItemRoot_RectTransform);
 }
コード例 #4
0
    void OnItemClick(Jyx2ItemUI itemUI)
    {
        if (m_selectItem == itemUI)
        {
            return;
        }

        if (m_selectItem)
        {
            m_selectItem.Select(false);
        }
        m_selectItem = itemUI;
        m_selectItem.Select(true);
        ShowItemDes();
    }
コード例 #5
0
    void RefreshScroll()
    {
        HSUnityTools.DestroyChildren(ItemRoot_RectTransform);
        bool hasSelect = false;

        foreach (var kv in m_itemDatas)
        {
            string id    = kv.Key;
            int    count = kv.Value;

            var item = ConfigTable.Get <Jyx2Item>(id);
            if (item == null)
            {
                Debug.LogError("cannot get item data, id=" + id);
                continue;
            }
            //item filter
            if (m_filter != null && m_filter(item) == false)
            {
                continue;
            }

            var itemUI = Jyx2ItemUI.Create(int.Parse(id), count);
            itemUI.transform.SetParent(ItemRoot_RectTransform);
            itemUI.transform.localScale = Vector3.one;
            var btn = itemUI.GetComponent <Button>();

            BindListener(btn, () =>
            {
                OnItemClick(itemUI);
            });
            if (!hasSelect)
            {
                m_selectItem = itemUI;
                hasSelect    = true;
            }
            itemUI.Select(m_selectItem == itemUI);
        }
        ShowItemDes();
    }