コード例 #1
0
    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);
        }
    }