private void doDamageAnim(DamageTipsData dt) { //control那边做过滤 while (dt.dataQueue.Count > 0) { DamageData data = dt.dataQueue.Dequeue(); //如果没有缓存的item 实例化 if (cacheQueue.Count == 0) { GameObject go = UIUtils.cloneObj(DamageItem1, DamageItem1.transform.parent); DamageTipsItemUI item = go.GetComponent <DamageTipsItemUI>(); if (item == null) { item = go.AddComponent <DamageTipsItemUI>(); } cacheItem(item); } //如果还有缓存的item if (cacheQueue.Count > 0) { DamageTipsItemUI item = cacheQueue.Dequeue(); item.setActive(true); item.setParentUI(this); item.setData(data); this.index++; item.setIndex(this.index); } } }
public override void refreshUI() { DamageTipsData dt = this.data as DamageTipsData; if (dt != null) { doDamageAnim(dt); } }
//显示下一个 public void showNext() { DamageTipsData dt = this.data as DamageTipsData; if (dt != null && dt.dataQueue.Count > 0) { doDamageAnim(dt); } }
//检查队列 public void checkQueue(int itemIndex) { if (itemIndex == this.index) { DamageTipsData dt = this.data as DamageTipsData; if (dt == null || dt.dataQueue.Count == 0) { closeSelfUI(); } else if (dt != null || dt.dataQueue.Count > 0) { doDamageAnim(dt); } } }