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); }
//指定位置 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); }