我对编码非常陌生,正在尝试制作一个基本的西蒙说游戏。目前,我有一个立方体,应该在几秒钟后更改材质,但是我真的很难让任何类型的计时器循环,以便立方体更改材质,暂停,再次更改材质。
这是我当前代码的一部分。目前,它经常崩溃,我相当确定这是由于我的 while 循环搞砸了。
private void Awake()
{
while(i < 3)
{
StartCoroutine(Delay());
i++;
}
}
private IEnumerator Delay()
{
yield return new WaitForSeconds(3);
ChangeColour();
}
void ChangeColour()
{
// we want to change simon's colour
simon.GetComponent<Renderer>().material = callList[i];
}
根据您的代码尝试,我假设您正在寻找类似的东西
[SerializeField] Renderer simon;
[SerializeField] Material[] callList;
[SerializeField] float delay = 3f;
private IEnumerator Start()
{
var wait = new WaitForSeconds(delay);
for(var i = 0; i < callList.Length; i++)
{
yield return wait;
simon.material = callList[i];
}
}