Unity - нажмите кнопку, чтобы медленно увеличивать число

Я пытаюсь сделать что-то вроде старой денежной системы в стиле GTA, как в Gta Vice City или san andreas. Поэтому, когда вы добавляете или получаете деньги, число не просто перескакивает к результату. Он медленно увеличивается, пока не будет добавлена ​​добавленная стоимость.

Я хочу сделать это, нажимая кнопки, поэтому одна кнопка добавит 100 долларов, а другая вычтет 100 долларов и так далее.

Кнопки не работают с update и Time.deltatime. любая помощь была бы замечательной. Спасибо!


person Kira    schedule 12.07.2020    source источник
comment
Попробуйте использовать для этого отдельные игровые объекты. С их собственным методом обновления.   -  person AgentFire    schedule 12.07.2020


Ответы (1)


Чтобы постепенно увеличивать число с течением времени, вы можете сделать что-то вроде этого:

    public float money = 100;
    public int moneyPerSecond = 25;
    public int moneyToReach = 100;
    bool addingMoney = false;

    private void Update()
    {
        if (addingMoney)
        {
            if (money < moneyToReach)
            {
                money += moneyPerSecond * Time.deltaTime;
            }
            else { addingMoney = false; money = Mathf.RoundToInt(money); }
        }
    }

    public void addMoney()
    {
        moneyToReach += 100;
        addingMoney = true;
    }

person Padia 3d    schedule 12.07.2020
comment
Огромное спасибо! Это то что мне было нужно - person Kira; 12.07.2020
comment
Есть ли причина добавлять moneyToReach к 100 по умолчанию? например, могу ли я поставить это значение на 0, а затем использовать вызовы моих методов для таких вещей, как + = 100, 200 и т. д.? - person Kira; 12.07.2020
comment
Да, вы можете установить для money и moneyToReach значение 0 по умолчанию, а затем добавить желаемое количество - person Padia 3d; 12.07.2020