我得到了这个方法(在Unity C#脚本中),但我不明白“yield”部分是如何工作的。具有“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;
}
问题标题可能更具描述性。不过,Google仍然拿起关键字。 – ftvs 2012-11-28 11:26:34