Как сделать улучшение клика в кликере на Unity?

Я новичок в Unity. Я разрабатываю кликер, но я хочу добавить кнопку улучшения клика (+2 за один клик) Но я не знаю, как это сделать. Я перепробовал много вариантов, но кнопка не работает. Нажав на эту кнопку у игрока отберут 1000 очков и улучшат клик. Вот код кнопки, добавляющей очки:

using UnityEngine;
using UnityEngine.UI;

public class clicker : MonoBehaviour
{
    private int num;
    public Text textNum;


    public void Start()
    {
        num = PlayerPrefs.GetInt("");
    }

    public void addNum()
    {
        num++;
        textNum.text = num.ToString();
        PlayerPrefs.SetInt("",num);
    }   

}

Я пытался создать функцию shop и добавить переменную click, но при нажатии на кнопку улучшения клик оставался прежним:

using UnityEngine;
using UnityEngine.UI;

public class clicker : MonoBehaviour
{
    private int num;
    public Text textNum;
    private int click;


    public void Start()
    {
        num = PlayerPrefs.GetInt("");
        click=1;
    }

    public void addNum()
    {
        num+=click;
        textNum.text = num.ToString();
        PlayerPrefs.SetInt("",num);
    }  

    public void  shop()
    {
        if(num>999)
        {
           click+=1
        }
    }

}

Ответы (1 шт):

Автор решения: Ersamuel

Для вашего случая нужно будет сохранять значение click так же, как и значение num. Для изменения и чтения этих переменных лучше использовать геттеры и сеттеры.

private int num
{
    get { return PlayerPrefs.GetInt(""); }
    set { PlayerPrefs.SetInt("", value); }
}
private int click
{
    get { return PlayerPrefs.GetInt("click", 1); }
    set { PlayerPrefs.SetInt("click", value); }
}

Откажитесь от метода Start для установки значений и перепишите метод addNum следующим образом:

public void addNum()
{
    num += click;
    textNum.text = num.ToString();
}  
→ Ссылка