前言
Unity中的协程经常会用到,可能大家也听过启动协程带来额外的开销成本大约是标准函数调用的三倍,还会分配一些内存,将当前状态存储在内存中,直到下一次调用它,因此要谨慎的使用。
禁用组件无法使初始化的协程停止:协程的运行独立于MonoBehaviour组件中Update()回调的触发,不管组件是否禁用,都将继续调用协程
禁用GameObject会停止协程:包含协程的GameObject变成不活动的那一刻自动停止,但是GameObject再次设置为活动时协程不会自动重启
处理性能优化:即由于在给定的帧中调用该方法的次数太多而导致帧率超出预算可以使用协程减少调用次数,减少帧中的性能损失
方法介绍
yield return new WaitForSeconds(time);
协程在yield语句上暂停指定的秒数,但是它不是一个精准的计时器,所以当这个yield语句上暂停指定的秒数,会有少量变化
而且要注意,会受到Time.timeScale 产生时间缩放,可以做慢动作效果
IEnumerator TestIEnumerator()
{
yield return new WaitForSeconds(3f);
}
yield return new WaitForSecondsRealtime(time);
协程在yield语句上暂停指定的秒数,但是它不是一个精准的计时器,所以当这个yield语句上暂停指定的秒数,会有少量变化
和WaitForSeconds