Unity3d 纠正上一篇协程讲解的错误
来源:互联网 发布:淘宝折扣 编辑:程序博客网 时间:2024/06/01 10:25
Unity协程里面一直有一个误区,包括网上的一些文章,所讲的(等待多少帧后执行),根据我和朋友的测试,得出的结论:
1.IEnumerator IETestInt()
{
Debug.Log("int或者float 1 " + System.DateTime.Now.Ticks);
yield return 1000;
Debug.Log("int或者float 2 " + System.DateTime.Now.Ticks);
}
很多人认为(包括我之前也认为)yield return 1000是等待1000帧后执行下面的代码,其实yield return 1000和yield return null是一样的,可以理解为等待下一帧执行。这里1000=null。所有这里的等待多少帧执行是不成立的。
并且IEnumerator是在LateUpdate之后执行(有朋友测试结果是IEnumerator是在Update之后执行,根据分析应该跟版本有关系,这里不做太多说明。)
测试代码如下:
using UnityEngine;using System.Collections;public class Tests : MonoBehaviour { // Use this for initialization void Start () { StartCoroutine(IETest()); StartCoroutine(IETestInt()); StartCoroutine(IETestFrame()); } // Update is called once per frame void Update () { Debug.Log("Update"); } void LateUpdate() { Debug.Log("LateUpdate"); } IEnumerator IETest() { Debug.Log("null1 "+System.DateTime.Now.Ticks); yield return null; Debug.Log("null 2 " + System.DateTime.Now.Ticks); } IEnumerator IETestInt() { Debug.Log("int或者float 1 " + System.DateTime.Now.Ticks); yield return 1000; Debug.Log("int或者float 2 " + System.DateTime.Now.Ticks); } IEnumerator IETestFrame() { Debug.Log("WaitForEndOfFrame " + System.DateTime.Now.Ticks); yield return new WaitForEndOfFrame(); Debug.Log("WaitForEndOfFrame " + System.DateTime.Now.Ticks); }}
0 0
- Unity3d 纠正上一篇协程讲解的错误
- 对上一篇jni的纠正把
- Unity3d 协程讲解
- cocos2d-x3.0打飞机学习之纠正上一篇的一个问题
- 一个错误纠正的解释
- ThreadLocal的错误理解纠正
- 错误纠正
- 纠正几个jsp中INCLUDE的错误
- 纠正14条查杀计算机病毒的错误认识
- oracle的em配置错误纠正
- 市委组织部项目--纠正下拉框多选的错误
- 一点编程错误思想的纠正
- 纠正几个NANDFLASH很容易犯的错误
- 纠正tomcat 的错误启动方式
- sync.WaitGroup的错误用法与纠正
- 正确完整的快排,上一篇错误
- 一篇讲解makefile的文章
- 纠正一个设计错误
- jquery取不到cookie中的值(本地有cookie但就是无法取到对应的值)
- zoj 3626 树形dp
- 大数据课程体系-学习笔记-第一阶段-Java Collection
- 算法训练 操作格子
- COM编程小结
- Unity3d 纠正上一篇协程讲解的错误
- UVA - 1439 Exclusive Access 2 独占访问2
- AFNetwork 作用和用法详解
- vimrc配置
- IOS 剪切板中的提示为英文改为中文 解决方法
- 【动态规划】【数位DP】[PA 2015]Rownanie
- Java判断类和实例的关系
- BZOJ 2400: Spoj 839 Optimal Marks|最小割
- Alcatraz的安装和使用