using System; using System.Collections.Generic; using ET; using FairyGUI; using UI.Bag; using UI.CommonGame; using UnityEngine; namespace GFGGame { public class GiftBoxSelectorView : BaseWindow { private UI_GiftBoxSelectorUI _ui; private int _itemId; private int _count; public override void Dispose() { base.Dispose(); if (_ui != null) { _ui.Dispose(); _ui = null; } } protected override void OnInit() { base.OnInit(); packageName = UI_GiftBoxSelectorUI.PACKAGE_NAME; _ui = UI_GiftBoxSelectorUI.Create(); this.viewCom = _ui.target; this.viewCom.Center(); this.modal = true; _ui.m_btnCancel.onClick.Add(OnBtnCancelClick); _ui.m_list.SetVirtual(); _ui.m_list.itemRenderer = ListItemRender; _ui.m_list.onClickItem.Add(OnListSelectorItemClick); } protected override void AddEventListener() { base.AddEventListener(); } protected override void OnShown() { base.OnShown(); _itemId = (int)this.viewData; _count = (int)ItemDataManager.GetItemNum(_itemId); UpdateView(); UpdateList(); } protected override void OnHide() { if (_ui.m_list.numItems > 0) { _ui.m_list.ScrollToView(0); } _ui.m_list.numItems = 0; base.OnHide(); } protected override void RemoveEventListener() { base.RemoveEventListener(); } private void UpdateView() { ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(_itemId); _ui.m_loaIcon.url = ResPathUtil.GetIconPath(itemCfg); _ui.m_txtName.text = itemCfg.name; _ui.m_txtTotalNum.text = $"已拥有:{_count}"; _ui.m_txtItemDes.text = string.IsNullOrEmpty(itemCfg.desc) ? "暂无描述" : itemCfg.desc; } private void UpdateList() { _ui.m_list.numItems = _count; } private void ListItemRender(int index, GObject obj) { ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(_itemId); UI_ListSelectorItem uiItemChild = UI_ListSelectorItem.Proxy(obj); int[] itemChildArr = itemCfg.itemsArr[index]; ItemCfg itemCfgChild = ItemCfgArray.Instance.GetCfg(itemChildArr[0]); uiItemChild.m_loaIcon.url = ResPathUtil.GetIconPath(itemCfgChild); uiItemChild.m_comItemNumBag.m_txtNum.text = itemChildArr[1].ToString(); uiItemChild.target.data = itemCfgChild; } private void OnListSelectorItemClick(EventContext context) { GComponent comItem = (context.data as GComponent); ItemCfg itemCfg = comItem.data as ItemCfg; //弹出物品详细描述框 } private void OnBtnCancelClick() { this.Hide(); } } }