コード例 #1
0
    public Bag GetBagFromBagData(Bag bag, BagData bagData)
    {
        Inventory  inventory  = Inventory.Instance;
        BagSetting bagSetting = bag.ItemSetting as BagSetting;

        for (int i = 0; i < bagSetting.SlotCount; i++)
        {
            Slot slot = Instantiate(inventory.slotItmePrefab, bag.transform).GetComponent <Slot>();
            bag.Slots.Add(slot);
        }

        foreach (ItemData itemData in bagData.ItemDatas)
        {
            ItemSetting itemSetting = GetItemFromDataBase(itemData.Name);

            if (itemSetting is BagSetting)
            {
                Bag itemBag = Instantiate(inventory.bagItemPrefab).GetComponent <Bag>();
                itemBag.ItemSetting            = GetItemFromDataBase(itemData.BagData.Name);
                itemBag                        = GetBagFromBagData(itemBag, itemData.BagData);
                bag.Slots[itemData.Index].Item = itemBag;
                itemBag.transform.SetParent(bag.Slots[itemData.Index].transform);
            }
            else
            {
                Item item = Instantiate(inventory.itemPrefab).GetComponent <Item>();
                item.ItemSetting = itemSetting;
                item.Count       = itemData.Count;
                bag.Slots[itemData.Index].Item = item;
                item.transform.SetParent(bag.Slots[itemData.Index].transform);
            }
        }

        return(bag);
    }
コード例 #2
0
    //指定位置
    public void AddBag(Bag bag, BagButton bagButton)
    {
        BagSetting bagSetting = (BagSetting)bag.ItemSetting;
        BagUI      bagUI      = Instantiate(bagUIPrefab, transform).GetComponent <BagUI>();

        bag.BagUI     = bagUI;
        bag.BagUI.Bag = bag;
        bag.BagUI.AddSlots();

        bagButton.Bag = bag;
        bags.Add(bag);
        SortBag();
        bag.transform.SetParent(transform.parent);

        OnBagChanged(bag);
    }