示例#1
0
    void InitializeUpgrades()
    {
        all_upgradable = GetComponents <BaseUpgrade>();
        foreach (BaseUpgrade upgrade in all_upgradable)
        {
            GameObject menu = Instantiate(menuPrefab);
            menu.transform.SetParent(MenuContainer);
            menu.transform.localScale = Vector3.one;

            UpgradeMenuUI menuUI = menu.GetComponent <UpgradeMenuUI>();
            upgrades.Add(upgrade, menuUI);

            int upgradesCount = upgrade.GetPossibleUpgradeCount(coins.GetCoins(), out double cost);
            menuUI.SetInfo(upgrade.GetLevel(), upgrade.GetMaxLevel(), upgrade.GetName(), upgrade.GetDescription(),
                           upgrade.GetPrice(), upgradesCount, cost, upgrade.GetIconSprite());
            menuUI.OnSingleUpgradeClicked += SingleClickHandler;
            menuUI.OnMaxUpgradeClicked    += MaxClickHandler;
            menuUI.SetBlockScreenState(upgrade.IsLocked());
            upgrade.OnLockIsOff += menuUI.SetBlockScreenState;
            //Debug.Log($"{menuUI.name} is set to {!upgrade.IsLocked()}");
        }
    }