Exemplo n.º 1
0
 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);
     }
 }
Exemplo n.º 2
0
    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);
            }
        }
    }