private void RemoveItem(int index) { CollectionItemViewModelComponent item = currentItems[index]; currentItems.RemoveAt(index); DisposeItem(item); }
private void MoveItem(int oldIndex, int newIndex) { CollectionItemViewModelComponent item = currentItems[oldIndex]; currentItems.RemoveAt(oldIndex); currentItems.Insert(newIndex, item); item.transform.SetSiblingIndex(newIndex); }
private void InsertItem(int index, object value) { CollectionItemViewModelComponent bestPrefab = prefabPicker.FindBestPrefab(value); CollectionItemViewModelComponent newItem = SpawnItem(bestPrefab, Container); currentItems.Insert(index, newItem); newItem.transform.SetSiblingIndex(index); SetItemValue(index, value); }
protected virtual void DisposeItem(CollectionItemViewModelComponent item) { if (pool) { pool.Recycle(item); } else { Destroy(item.gameObject); } }
protected virtual CollectionItemViewModelComponent SpawnItem(CollectionItemViewModelComponent prefab, Transform itemParent) { CollectionItemViewModelComponent result; if (pool) { result = pool.Spawn(prefab); result.transform.SetParent(itemParent); } else { result = Instantiate(prefab, itemParent, false); } return(result); }