示例#1
0
    void Awake()
    {
        powerUpDict = new Dictionary <PowerUpId, PowerUp>();

        foreach (PowerUpInfo info in powerUps)
        {
            PowerUp powerUp = DataManager.GetPowerUpData(info.id);
            powerUp.Info = info;
            powerUpDict.Add(powerUp.id, powerUp);

            // Adiciona o botão para comprar o powerup
            UIStoreItem storeItem = Instantiate(prefabStoreItem).GetComponent <UIStoreItem>();
            storeItem.transform.name = "StoreItem_" + info.id.ToString();
            storeItem.transform.SetParent(storeItemContainer);
            Navigation nav = storeItem.GetComponent <Button>().navigation;
            nav.mode = Navigation.Mode.None;
            storeItem.GetComponent <Button>().navigation = nav;
            storeItem.gameObject.SetActive(true);
            storeItem.Info = info;
            storeItem.UpdateState(powerUp);
            storeItem.buttonBuy.onClick.AddListener(() => BuyPowerUp(info));

            // Adiciona o botão na lista de power ups adquiridos, caso haja algum
            if (powerUp.units > 0)
            {
                prefabPowerUpItem.GetComponent <UIPowerUpItem>().info = info;
                UIPowerUpItem powerUpItem = Instantiate(prefabPowerUpItem).GetComponent <UIPowerUpItem>();
                powerUpItem.transform.name = "PowerUpItem_" + info.id.ToString();
                powerUpItem.transform.SetParent(powerUpsContainer);
                powerUpItem.gameObject.SetActive(true);
                powerUpItem.SetUnitsText(powerUp.units);
            }
        }
    }
示例#2
0
    // Atualiza a lista de powerups adquiridos pelo jogador.
    public void UpdatePowerUp(PowerUp powerUp)
    {
        Transform x = powerUpsContainer.Find("PowerUpItem_" + powerUp.id.ToString());

        // Caso o powerup já esteja na lista, a quandidade é incrementada com uma animação.
        if (x != null)
        {
            UIPowerUpItem item = x.GetComponent <UIPowerUpItem>();
            item.UpdateUnits(powerUp.units);
            return;
        }

        // Caso o powerup não estaja na lista de powerups adquiridos, ele é inserido na tela com uma animação
        prefabPowerUpItem.GetComponent <UIPowerUpItem>().info = powerUp.Info;
        UIPowerUpItem powerUpItem = Instantiate(prefabPowerUpItem).GetComponent <UIPowerUpItem>();

        powerUpItem.transform.name = "PowerUpItem_" + powerUp.Info.id.ToString();
        powerUpItem.transform.SetParent(powerUpsContainer);
        powerUpItem.gameObject.SetActive(true);
        powerUpItem.SetUnitsText(powerUp.units);
    }