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); }); } }
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(); }