using System.Collections; using UnityEngine; using UI.CommonGame; using FairyGUI; using System.Collections.Generic; using System; namespace GFGGame { public class RewardView : BaseWindow { private UI_RewardUI _ui; private List _listItemDatas; private Action onSuccess = null; private List _effects = new List(); private List _wrappers = new List(); public override void Dispose() { base.Dispose(); for (int i = 0; i < _effects.Count; i++) { SceneController.DestroyObjectFromView(_effects[i]); } } protected override void OnInit() { base.OnInit(); _ui = UI_RewardUI.Create(); this.viewCom = _ui.target; this.viewCom.Center(); this.modal = true; // _ui.m_listReward.SetVirtual(); _ui.m_listReward.itemRenderer = RenderListRewardItem; _ui.m_listReward.onClickItem.Add(OnClickListReward); _ui.m_bg.onClick.Add(this.Hide); } protected override void OnShown() { base.OnShown(); if ((this.viewData as object[]).Length > 0) { // onSuccess _listItemDatas = (this.viewData as object[])[0] as List; onSuccess = (this.viewData as object[])[1] as Action; } else { _listItemDatas = this.viewData as List; } _ui.m_listReward.numItems = _listItemDatas.Count; } protected override void OnHide() { if (onSuccess != null) { onSuccess(); } base.OnHide(); } private void RenderListRewardItem(int index, GObject obj) { obj.data = _listItemDatas[index]; UI_ListRewardItem item = UI_ListRewardItem.Proxy(obj); ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(_listItemDatas[index].id); item.m_comRewardItem.m_txtName.text = itemCfg.name; // item.m_txtCount.text = _listItemDatas[index].num==1?"": string.Format("x{0}", _listItemDatas[index].num); item.m_comRewardItem.m_txtCount.text = string.Format("x{0}", _listItemDatas[index].num); item.m_comRewardItem.m_loaIcon.url = ResPathUtil.GetIconPath(itemCfg); string resPath = ResPathUtil.GetViewEffectPath("ui_ck", "ui_ck_zl"); int childIndex = _ui.m_listReward.ItemIndexToChildIndex(index); // if (_effects.Count <= index) // { // GameObject gameObject0; // GoWrapper wrapper0; // SceneController.AddObjectToView(null, null, item.m_holder, resPath, out gameObject0, out wrapper0); // _effects.Add(gameObject0); // item.m_t0.Play(); // } } private void OnClickListReward(EventContext context) { if (this.ShowTips) { ItemData data = (context.data as GObject).data as ItemData; GoodsItemTipsController.ShowItemTips(data.id); } } private bool _showTips = true; /// /// 是否展示物品详情,默认展示 /// private bool ShowTips { get { return _showTips; } set { _showTips = value; } } } }