我得到了这个方法(在 Unity C# 脚本中),但我不明白“yield”部分的实际工作原理。
我从 MSDN 知道该函数将返回一个我可以迭代的 IEnumerator,但是此代码等待 1.5 秒并且不会被迭代,因为这意味着在内部创建的对象被创建了多次。这里有人可以解释一下这段代码是如何工作的吗?
IEnumerator DestroyShip()
{
// create new gameobject
Instantiate(ExplosionPrefab, transform.position, transform.rotation);
// make current gameobject invisible
gameObject.renderer.enabled = false;
// set new position for the current gameobject
transform.position = new Vector3(0f, transform.position.y, transform.position.z);
// wait for 1,5 seconds
yield return new WaitForSeconds(1.5f);
// make the current gameobject visible again
gameObject.renderer.enabled = true;
}