【发布时间】:2011-03-27 04:53:45
【问题描述】:
我得到了这个方法(在 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;
}
【问题讨论】:
-
问题标题可能更具描述性。不过,不知何故,谷歌仍然选择了关键字。
标签: c# unity3d yield yield-return