在我的游戏中,我有一个倒计时脚本。一旦计时器(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种颜色显示在检查器中,我可以打开颜色选择器并选择所需的颜色;
-但是,一旦我单击“播放”,该文本根本不会显示(倒数仍然有效,并且在那三秒钟后游戏正常开始),就好像alpha设置为0;
-在倒计时期间,我可以在检查器中看到默认的颜色选择器(文本(脚本)组件中的那个)在我的3种颜色之间循环,但是在“场景”或“游戏”视图中什么也没得到。
任何帮助将不胜感激。预先谢谢你。