update 里面的协程处理
2016-11-23 16:29
232 查看
// Update is called once per frame
void Update () {
if(Input.GetKeyDown(KeyCode.Space))
StartCoroutine(test());
}
IEnumerator test()
{
int cnt = 0;
while (true)
{
yield return new WaitForSeconds(0.5f);
Debug.Log(cnt++);
}
}
}
这里的cnt,每个协程是互不干扰的。。。。
public int m = 0;
void Start () {
m = 0;
}
// Update is called once per frame
void Update () {
if (Input.GetKeyDown(KeyCode.A)) {
m++;
StartCoroutine(test(m));
}
}
int a = 0;
IEnumerator test(int m) {
while (true) {
yield return new WaitForSeconds(0.8f);
Debug.Log(a++ +" "+m);
}
}
}
这里是多个协程处理同一个变量,变量会一直累加下去
协程不是线程,也不是异步执行的。协程和 MonoBehaviour 的 Update函数一样也是在MainThread中执行的
协程是一个分部执行,遇到条件(yield return 语句)会挂起,直到条件满足才会被唤醒继续执行后面的代码。
Unity在每一帧(Frame)都会去处理对象上的协程。Unity主要是在Update后去处理协程
void Update () {
if(Input.GetKeyDown(KeyCode.Space))
StartCoroutine(test());
}
IEnumerator test()
{
int cnt = 0;
while (true)
{
yield return new WaitForSeconds(0.5f);
Debug.Log(cnt++);
}
}
}
这里的cnt,每个协程是互不干扰的。。。。
public int m = 0;
void Start () {
m = 0;
}
// Update is called once per frame
void Update () {
if (Input.GetKeyDown(KeyCode.A)) {
m++;
StartCoroutine(test(m));
}
}
int a = 0;
IEnumerator test(int m) {
while (true) {
yield return new WaitForSeconds(0.8f);
Debug.Log(a++ +" "+m);
}
}
}
这里是多个协程处理同一个变量,变量会一直累加下去
协程不是线程,也不是异步执行的。协程和 MonoBehaviour 的 Update函数一样也是在MainThread中执行的
协程是一个分部执行,遇到条件(yield return 语句)会挂起,直到条件满足才会被唤醒继续执行后面的代码。
Unity在每一帧(Frame)都会去处理对象上的协程。Unity主要是在Update后去处理协程
相关文章推荐
- DataGrid里面的RadioButton实现单选的处理
- update的时候数据库的处理情况
- 托管里面的web请求,异常处理,读写文件。
- UPDATE 时, 如何避免数据定位处理被阻塞
- 第八篇: UpdateProgress 控件--显示正在处理中的信息
- UPDATE 时, 如何避免数据定位处理被阻塞
- InfoPath表单里面的空格处理技巧
- UPDATE 时, 如何避免数据定位处理被阻塞
- 转:邹建--UPDATE 时, 如何避免数据定位处理被阻塞
- UpdateBatch与事务处理的一点总结
- 技巧和诀窍:用ASP.NET AJAX来处理UpdatePanel控件的出错
- ASP.NET里面处理ACCESS和SQLSERVER数据库的问题
- 在基于对话框的应用中执行空闲状态处理(比如用ON_UPDATE_COMMAND_UI更新控件)
- 处理sqlcommand里面的参数
- GridView放在UpdatePanle里面模板列取值!
- Atlas:在UpdatePanel里面上传附件
- UPDATE 时, 如何避免数据定位处理被阻塞
- 在对话框里面使用ON_UPDATE_COMMAND_UI映射工具条
- 第八篇: UpdateProgress 控件--显示正在处理中的信息
- 转载:Atlas在UpdatePanel里面上传附件