예제 #1
0
        private void RemoveItem(int index)
        {
            CollectionItemViewModelComponent item = currentItems[index];

            currentItems.RemoveAt(index);
            DisposeItem(item);
        }
예제 #2
0
        private void MoveItem(int oldIndex, int newIndex)
        {
            CollectionItemViewModelComponent item = currentItems[oldIndex];

            currentItems.RemoveAt(oldIndex);
            currentItems.Insert(newIndex, item);
            item.transform.SetSiblingIndex(newIndex);
        }
예제 #3
0
        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);
        }
예제 #4
0
 protected virtual void DisposeItem(CollectionItemViewModelComponent item)
 {
     if (pool)
     {
         pool.Recycle(item);
     }
     else
     {
         Destroy(item.gameObject);
     }
 }
예제 #5
0
        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);
        }