我正在尝试创建一个递归函数,该函数将在最大值和最小值之间的随机时间间隔实例化一只鸟,然后调用自身,以便该过程重新开始,并且在另一只随机鸟之后将实例化一只新鸟间隔。问题在于,当前在第一个随机间隔过去之后,立即实例化了无限(接近)数量的鸟。但是我看不到哪里出了问题。 SpawnBird()已经过测试,仅在单独调用一只鸟时才会实例化。
void Start()
{
minBirdWait = 10;
maxBirdWait = 25;
BirdGenerator();
}
void BirdGenerator()
{
float timer = Random.Range(minBirdWait, maxBirdWait);
Invoke("SpawnBird", timer);
BirdGenerator();
}
答案 0 :(得分:0)
我最终将它变成了协程,现在可以使用了。
IEnumerator BirdGenerator()
{
while(true)
{
float timer = Random.Range(minBirdWait, maxBirdWait);
yield return new WaitForSeconds(timer);
SpawnBird();
}
}