void CreateShelf() { for (int i = 0; i < ItemCountInRow; i++) { GameObject placeHolderGO = (GameObject)Instantiate(placeholderPrefab); placeHolderGO.transform.SetParent(shelfGridTransform, false); ItemPlaceholder placeholder = placeHolderGO.GetComponent <ItemPlaceholder>(); GameObject itemcontainerGO = (GameObject)Instantiate(itemcontainerPrefab); itemcontainerGO.transform.SetParent(placeHolderGO.transform, false); ItemContainer itemContainer = itemcontainerGO.GetComponent <ItemContainer>(); itemContainer.CanDrag = false; ItemContainerToGO.Add(itemContainer, itemcontainerGO); ItemContainerToitem.Add(itemContainer, null); } }
public void Rebuild() { // устанавливаем праивльное количество List <CraftItem> engine_list = engine.GetLevelItems(Level); if (engine_list != null && ColumnItems.Count != engine_list.Count) { if (ColumnItems.Count < engine_list.Count) // надо добавлять { while (ColumnItems.Count < engine_list.Count) { if (FreeItems.Count > 0) { ColumnItems.Add(FreeItems[0]); FreeItems.RemoveAt(0); } else { var new_item = Instantiate(ItemCellPrefab); new_item.localScale = Vector3.one; ColumnItems.Add(new_item.GetComponent <ItemPlaceholder>()); } } } else // надо убавлять { while (ColumnItems.Count > engine_list.Count) { int tail_index = ColumnItems.Count - 1; ItemPlaceholder item = ColumnItems[tail_index]; item.Hide(); FreeItems.Add(item); ColumnItems.RemoveAt(tail_index); } } } if (engine_list != null) { for (int i = 0; i < ColumnItems.Count; i++) { ColumnItems[i].SetItem(engine_list[i].ItemTypeId, transform); } } }