private void GenerateShopItemsUI() { for (int i = 0; i < GameDataManager.GetallPurchasedCharacter().Count; i++) { int purchasedCharacterIndex = GameDataManager.GetPurchasedCharacter(i); characterDB.PurchasedCharacter(purchasedCharacterIndex); } itemHeight = shopItemsContainer.GetChild(0).GetComponent <RectTransform>().sizeDelta.y; Destroy(shopItemsContainer.GetChild(0).gameObject); shopItemsContainer.DetachChildren(); for (int i = 0; i < characterDB.CharacterCount; i++) { Character character = characterDB.GetPurchased(i); CharacterItemUI uiItem = Instantiate(itemPrefab, shopItemsContainer).GetComponent <CharacterItemUI>(); uiItem.SetItemPosition(Vector2.down * i * (itemHeight + itemSpacing)); uiItem.SetCharacterImage(character.image); uiItem.SetCharacterPrice(character.price); if (character.isPurchased) { uiItem.SetCharacterAsPurchased(); uiItem.OnItemSelect(i, OnItemSelect); } else { uiItem.SetCharacterPrice(character.price); uiItem.OnItemPurchased(i, OnItemPurchased); } shopItemsContainer.GetComponent <RectTransform>().sizeDelta = Vector2.up * ((itemHeight + itemSpacing) * characterDB.CharacterCount + itemSpacing); } }