private void UpdateGraphics() { folderFileCount = GetFolderFileCount(customFolderDataPath); bool destroyRemainingPrizes = folderFileCount < prizes.Length; prizesDictionary = new Dictionary <GameObject, int>(); if (destroyRemainingPrizes) { foreach (GameObject row in rows) { for (int i = folderFileCount; i < prizes.Length; i++) { Destroy(row.transform.GetChild(i).gameObject); } } } prizes = new GameObject[folderFileCount]; GetSlotMachineSprite(); for (int i = 0; i <= folderFileCount - 1; i++) { string prizePath = string.Empty; prizePath = string.Format("{0}/premio {1}.png", customFolderDataPath, i + 1); foreach (GameObject row in rows) { SpriteRenderer newSpriteRenderer = null; Texture2D image = null; try { GameObject child = row.transform.GetChild(i).gameObject; newSpriteRenderer = child.GetComponent <SpriteRenderer>(); image = newSpriteRenderer.sprite.texture; prizes[i] = child; } catch { RowData rowScript = row.GetComponent <RowData>(); GameObject newPrize = Instantiate(prizePrefab) as GameObject; Vector3 topmost = rowScript.GetTopMostElement().transform.position; newSpriteRenderer = newPrize.GetComponent <SpriteRenderer>(); newPrize.transform.SetParent(row.transform, true); newPrize.GetComponent <Collider>().isTrigger = true; image = newSpriteRenderer.sprite.texture; newPrize.transform.position = new Vector3(topmost.x, topmost.y + heightDifference, topmost.z); rowScript.prizesList.AddFirst(newPrize); prizes[i] = newPrize; } prizes[i].name = string.Format("prize {0}", i + 1); image = new Texture2D(350, 450, TextureFormat.ARGB32, true); StartCoroutine(Customization.LoadTexture2D(prizePath, image)); Rect imageRect = new Rect(0, 0, image.width, image.height); newSpriteRenderer.sprite = Sprite.Create(image, imageRect, new Vector2(0.5f, 0.5f)); } prizesDictionary.Add(prizes[i], 0); } }