В моей игре есть один скрипт обратного отсчета.Как только таймер (3 секунды) достигает нуля, начинается игровой процесс.
Я хотел сделать так, чтобы текст менял цвет во время обратного отсчета (то есть 3 - красный, 2 - желтый, 1 - зеленый).
Этого было довольно легко достичь, но я не был полностью доволен использованием countdown.color = Color.green;
и хотел большей гибкости (то есть наличия палитры цветов в редакторе).
Этот код работает:
Text countdown;
void OnEnable()
{
countdown = GetComponent<Text>();
countdown.text = "3";
StartCoroutine("Countdown");
}
IEnumerator Countdown()
{
int count = 3;
for (int i = 0; i < count; i++)
{
countdown.text = (count - i).ToString();
if ((count - i) == 3)
{
countdown.color = Color.red;
}
if ((count - i) == 2)
{
countdown.color = Color.yellow;
}
if ((count - i) == 1)
{
countdown.color = Color.green;
}
yield return new WaitForSeconds(1);
}
StartRound();
}
И это то, что вызывает у меня головную боль:
public Color color3;
public Color color2;
public Color color1;
Text countdown;
void OnEnable()
{
countdown = GetComponent<Text>();
countdown.text = "3";
StartCoroutine("Countdown");
}
IEnumerator Countdown()
{
int count = 3;
for (int i = 0; i < count; i++)
{
countdown.text = (count - i).ToString();
yield return new WaitForSeconds(1);
if ((count - i) == 3)
{
countdown.color = color3;
}
if ((count - i) == 2)
{
countdown.color = color2;
}
if ((count - i) == 1)
{
countdown.color = color1;
}
}
StartRound();
}
Второй сценарий работает, но только до определенного момента:
- 3 цвета отображаются в Инспектореи я могу открыть палитру цветов и выбрать желаемые цвета;
- после нажатия кнопки «Пуск» текст вообще не отображается (обратный отсчет все еще работает, и геймплей начинается нормально после этих 3 секунд), как будтоальфа установлен на 0;
- во время обратного отсчета я вижу, как палитра цветов по умолчанию (тот, что находится в компоненте Text (Script)) циклически перебирает мои 3 цвета в Инспекторе, но я ничего не получаю в своей сцене илиПросмотр игры.
Любая помощь будет принята с благодарностью.Заранее спасибо.