Upgrade script, Name does not exist

Hello, I’m very new to programming and scripting and i got some problem with my Script.
I wanted ot write an Upgrade script for my clicker game. And “The name … does not exist in the current context” appears.
Here’s the script:

using System.Runtime.InteropServices;
using System.Threading;
using UnityEngine;
using UnityEngine.UI;

public class Upgrades : MonoBehaviour
{
    public Text gearText;
    public double gears;
    public double gearsClickValue;

    public Text gearsPerSecText;
    public Text ClickUpgradeText;
    public Text IdleUpgradeText;

    public double gearsPerSecond;
    public double ClickUpgradeCost;
    public int IdleUpgradeLevel;
 
    public void Start()
    {
        gearsClickValue = 1;
        ClickUpgradeCost = 10;
        IdleUpgradeCost = 25;
    }

    public void Update()
    {
        gearsPerSecond = IdleUpgradeLevel;

        gearText.text = "Gears: " + gears.ToString("F0");
        gearsPerSecText.text = gearsPerSecond.ToString("F0") + " gears/s";
        ClickUpgradeText.text = "Click Upgrade 1\nCost: " + ClickUpgradeCost.ToString("F0") + " coins\nPower: +1 Click\nLevel: " + ClickUpgradeLevel;
        IdleUpgradeText.text = "Production Upgrade 1\nCost: " + IdleUpgradeCost.ToString("F0") + " gears\npower: +1 gears/s\nLevel: " + IdleUpgradeLevel;

        gears += gearsPerSecond * Timeout.deltaTime;
    }
 
    public void Click()
    {
        gears += gearsClickValue;
    }
    public void BuyClickUpgrade()
    {
        if (gears >= ClickUpgradeCost)
        {
            ClickUpgradeLevel++;
            gears -= ClickUpgradeCost;
            ClickUpgradeCost += 1.07;
            gearsClickValue++;
        }
  
    }

    public void BuyIdleUpgrade()
    {
        if (gears >= IdleUpgradeCost)
        {
            IdleUpgradeLevel++;
            gears -= IdleUpgradeCost;
            productionsUpgrade1Cost *= 1.07;
        }
    }
}

scene screen

What name does not exist?

1 Like

ClickUpgrade and IdleUpgrade

You never declared “IdleUpgradeCost” but you are using it in your Start() method.

1 Like

After adding

    public double productionsUpgrade1Cost;
    public double ClickUpgradeLevel;
    public double gearsPerSecond;
    public double ClickUpgradeCost;
    public double IdleUpgradeCost;
    public int IdleUpgradeLevel;

all errors dissapered. Thanks for helping guys