Как уменьшить скорость счетчика на Unity?
Вот весь скрипт. Если его подключить к тексу, то числа очень быстро идет. Так же я хочу чтобы числа не так быстро шли. Например за секунду чтоб добавлялась 2 значение, а не 500. И чтоб его можно было изменять не в коде. Так же в скрипте есть ограничение. Заранее спасибо
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class top : MonoBehaviour
{
public Text textScore;
public int score;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
textScore.text = "" + score;
score--;
}
}
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
Во-первых, периодически вызываемую игровую логику следует размещать в FixedUpdate, а не в Update, тогда частота вычислений не будет зависеть от FPS. Во-вторых, для периодических задач есть корутины. В-третьих, называйте классы с большой буквы, так принято в C#.
public class Top : MonoBehaviour
{
public Text textScore;
public int score;
void Start()
{
StartCoroutine(CountPoints());
}
IEnumerator CountPoints()
{
while (score > 0) // корутина остановится, когда закончится цикл
{
textScore.text = score.ToString();
score--;
yield return new WaitForSeconds(1); // пауза 1 сек
}
}
}