unity3d - 为什么协程继承自 IEnumerator?
问题描述
从IEnumerator继承如何使该方法表现得像协程?这必须与编译器有关,对吧?
IEnumerator Fade()
{
for (float ft = 1f; ft >= 0; ft -= 0.1f)
{
Color c = renderer.material.color;
c.a = ft;
renderer.material.color = c;
yield return null;
}
}
解决方案
根据Microsoft 的 C# 文档,IEnumerator
它只是一个用于迭代对象集合的有用接口。它定义了一个MoveNext()
方法和一个Reset()
用于导航它所附加到的集合的方法。协程可以跨多个帧执行,因此 Unity 可能会使用 IEnumerator 在每个帧进行时迭代协程的状态变化。
您可以在此处MonoBehavior
的 Unity 源代码中的绑定中找到协程方法的声明。
推荐阅读
- sql - 将 varchar(14) 转换为日期时间导致异常
- python-3.7 - 有没有办法在 one2many 字段中插入多条记录
- svn - 如何使用现有的 svn checkout 创建 svn 存储库
- magento2 - 最近查看的产品在自定义容器中被缓存而不更新
- dialogflow-es - 有没有一种简单的方法可以使用 Dialogflow 确认电子邮件地址
- prismjs - 如何让“language-json”与 prism-js 一起使用
- flutter - StreamProvider 不更新列表
- jquery - django admin - 如何在文件末尾添加 javascript
- php - 类 App\Http\Controllers\ManagerLoginController 不存在
- swift - 哪个更好 removeAll of Array 或再次初始化 Array?