learn_StartCoroutine

协程学习记录

unity中的相关使用和理解

一些要点记录

1.yield return 0或null:告诉协程等待下一帧,直到继续执行为止。下一帧还是从这里开始
2.协程里面一段循环,一直yield return 0.直接可以使用为等待一段时间。
3.协程的嵌套使用,很有现实意义。尝试多实践观察。

重要作用

1.协程会对里面变量状态进行记录

IEnumerator CountSeconds()  
    {  
        int seconds = 0;
        int int_for = 0;
        while(true)  //一直循环着,所以for循环结束,会保存
        {
           //在这个大块while中, 先执行此部分,结束以后再是seconds.从整体来看,
            //整段代码持续执行,不管是在哪一帧输出,执行
            //yield只是控制执行的时机而已。
            for (float timer = 0; timer < 1; timer += 0.1f)//Time.deltaTime)
            {
                int_for++;
                Debug.Log(int_for + " int_for value.");  

                Debug.Log(timer + " timer value.");  

                yield return 0;
            }
            seconds++;  //表明该方法的状态被存储了,即使上一部分
            Debug.Log(seconds +" seconds have passed since the Coroutine started.");  
        }  
    } 

具体使用

1.特定使用:

IEnumerator Wait(float duration)  
    {  
        for(float timer = 0; timer < duration; timer += Time.deltaTime)  
            Yield return 0;  
    }  

本协程函数用于等待一段时间,在协程嵌套使用时,yield return StartCoroutine(Wait())使用其等待一段时间

2.具体控制对象行为:
运动到某一位置:在特定状态下,执行运动函数;
按指定路径前进:循环状态下,对位置序列进行遍历运动(主要判断条件和循环逻辑处理好)

注意事项

-终止协程StopCoroutine(),只能终止以字符串形式启动的协程;StopAllCoroutine()终止此脚本所有协程?

-多协程可以同时运行,按照各自启动顺序更新;可嵌套;多脚本访问一个协程,定义静态协程

-协程不是多线程!运行在同一线程,和普通脚本一样

参考来源 https://blog.csdn.net/huang9012/article/details/38492937

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值