public UnitIconQueueItem AddUnitIcon(Unit unit) { UnitIconQueueItem item = ObjectPooling.Instance.GetObject <UnitIconQueueItem>(ItemPrefab, transform); item.OnUpdate(unit); ItemArray.Add(item); return(item); }
public void RemoveUnitIcon(UnitIconQueueItem item) { int index = ItemArray.IndexOf(item); ItemArray.Remove(item); for (; index < ItemArray.Count; index++) { } item.Close(true); UpdateChild(); }
IEnumerator InsertIng(UnitIconQueueItem item) { item.Close(false); Vector2 disction = CellSize + Vector2.right * Spacing; Vector2 off = Vector2.zero; while (off.x < disction.x) { Vector2 value = Vector2.right * speed; off += value; for (int i = 0; i < MoveRect.Count; i++) { MoveRect[i].anchoredPosition -= value; } yield return(null); } item.Open(); item.transform.SetSiblingIndex(from + 1); UpdateChild(); }
void Insert(int to, int from) { if (from == -1) { from = ItemArray.Count; } if (to == from) { return; } this.to = to; this.from = from; UnitIconQueueItem item = ItemArray[to]; ItemArray.Insert(from, item); MoveRect.Clear(); for (int i = to; i < from; i++) { MoveRect.Add(ItemArray[i].GetComponent <RectTransform>()); } ItemArray.RemoveAt(0); StartCoroutine(InsertIng(item)); }
public void SetIconIndex(UnitIconQueueItem item, int index) { int to = ItemArray.IndexOf(item); Insert(to, index); }