我有一个像这样的递归IEnumerator
:
IEnumerator Spawn()
{
if(canSpawn)
{
Vector3 offset = new Vector3(example.transform.position.x + offsetVar, example.transform.position.y, example.transform.position.z);
Instantiate(someObject, offset,Quaternion.identity);
canSpawn = false;
yield return new WaitForSeconds(cooldown);
canSpawn = true;
StartCoroutine(Spawn());
}
}
然后我在GameObject.FindGameObjectWithTag(string s)
方法中使用Start()
来定位example
游戏对象。我将这个IEnumerator
的副本称为IEnumerator
一次,只是它具有不同的变量。它可以按预期工作,但是此IEnumerator
实例化的对象与另一个实例之间的距离越来越小,直到它们都在同一位置实例化为止。这里可能是什么问题?
答案 0 :(得分:1)
这是因为我在一个方法中同时启动了两个协程,而我却在Update()
方法中调用了该方法。现在,我只调用它们一次,就不会发生此问题。