在Unity中,协程还有一些特殊的东西,它们是普通C#之外的。
例如,我们可以使用
yield return WaitForSeconds(5.f);
让协程等待5秒钟,然后继续。
做什么yield return false;和yield return true;做什么?
@jhocking“由于0 false null完全相同”,为什么这么重要?C#是一种强类型的语言,因此在大多数情况下,“内幕”的外观并不重要。例如,与C和C ++不同,您不能只是做
—
2014年
if (0)或if (null)。
耸耸肩然后没关系。我所知道的是
—
猛烈抨击
yield return 0可行;显然是因为MLM解释的原因
这不是普通C#的补充。所述
—
OR Mapper 2014年
yield关键字至少自C#2.0一直围绕。Unity所做的只是将其称为协程,并处理生成的迭代器和从迭代器返回的值,从而可以在代码执行过程中引起非阻塞延迟。
@Almo:那是因为
—
OR Mapper 2014年
WaitForSeconds没有声明。声明一个WaitForSeconds带有float参数并返回要实现的枚举的元素类型的方法后,它将再次编译。因此,yield对于Unity而言并不特殊。如果有的话,该WaitForSeconds方法是Unity特有的,但即使这样,它也不会扩展C#语言,而只是使用标准C#编写的一种额外方法。
yield return true有特殊之处。但是yield return null只是停顿一帧,所以我怀疑它yield return false具有完全相同的效果(而且yield return 0由于0 false null在引擎盖下都是相同的)