private void LoadAllAssets() { int index = 0; foreach (BuyableItem item in ItemDictionary.Values) { //This piece of code is f*****g genius GameObject obj = new GameObject(); obj.AddComponent(typeof(ItemUIControl)); ItemUIControl itemUIControl = (ItemUIControl)obj.GetComponent(typeof(ItemUIControl)); itemUIControl.Init(item.ItemId, item.ItemName, item.Description, item.Price, ITEMINDEX[index]); RegisterInBroker(item, itemUIControl); index++; } }