在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在引擎盖下都是相同的)