Я уменьшаю значение maxFuelCount на -1. счетчик идет вниз, как и ожидалось. но он идет очень быстро, когда я долго нажимаю на педаль. как я могу замедлить значение счетчика? Я пробовал это * Time.deltaTime / 1.5f работает, не так, как я ожидал. кто-нибудь может предложить метод или дать какие-либо рекомендации
Большое спасибо за вашу помощь
private void FixedUpdate()
{
if (move == true)
{
// decreasing the float value
maxFuelCount--;
if (maxFuelCount > 0 && timeLeft > 0)
{
rb.AddForce(transform.right * engineCapacity * Time.fixedDeltaTime * turboCapacity, ForceMode2D.Force);
//asigning the decreased value to the slider
UIBS.NewValue = maxFuelCount * Time.deltaTime / 1.5f;
}
}
}





Ну, ты уменьшаешь на 1 каждый кадр, когда нажимается газ. За одну секунду с 50 кадрами в секунду это почти уменьшится на 50, что очень много. Просто уменьшите количество, которое уменьшает MaxFuelCount. Возможно, вы можете использовать MaxFuelCount -= Time.deltaTime;
Чтобы сделать его еще лучше, вы можете использовать счетчик speed, который можно настроить в зависимости от особенностей местности, например, если вы находитесь в грязи, скорость расхода топлива увеличивается следующим образом:
MaxFuelCount -= Time.deltaTime * speed;
Увеличивайте или уменьшайте скорость до той степени, которая вам удобна.
Также UIBS.NewValue = maxFuelCount * Time.deltaTime / 1.5f; это не сработает. Опять же, с 50 кадрами в секунду вы делите значение почти до 33, на этот раз, что очень быстро снизит значение.
Также имеет смысл использовать две переменные: MaxFuelAmount (количество топлива, которое может вместить бак) и CurrentFuelAmount.
Затем вы можете рассчитать процент, например: CurrentFuelAmount / MaxFuelAmount * 100, и использовать его в значении пользовательского интерфейса.