协程两种写法分析

来源:互联网 发布:三国战纪神剑升级数据 编辑:程序博客网 时间:2024/06/11 19:20
using System.Collections;using System.Collections.Generic;using UnityEngine;public class haitao : MonoBehaviour {    float timee;    void Start () {    //由打印结果可以看出,这两个协程的计时点都是一样的,但携程内部时间起算点是累加的        StartCoroutine ("kaishi");        StartCoroutine ("kaishi");    }    // Update is called once per frame    void Update () {        timee += Time.deltaTime;    }    IEnumerator kaishi(){        yield return new WaitForSeconds (2);  //先等2秒        print("2秒后执行    " +timee);        yield return new WaitForSeconds (5); //2秒过后 再等5秒        print("5秒后执行    " +timee);        yield return new WaitForSeconds (8); //前面7秒过后再等8秒        print("8秒后执行    " +timee);    }}

打印结果:
这里写图片描述



using System.Collections;using System.Collections.Generic;using UnityEngine;public class haitao : MonoBehaviour {    float timee;    // Use this for initialization    void Start () {    //由打印结果可以看出,下面三个协程的计时点都是一样的,但携程内部时间起算点是累加的        StartCoroutine(Common.DelayToInvokeDo(() =>            {                print("2秒后执行    " +timee);            }, 2f));        StartCoroutine(Common.DelayToInvokeDo(() =>            {                print("5秒后执行    " +timee);            }, 5f));        StartCoroutine(Common.DelayToInvokeDo(() =>            {                print("8秒后执行    " +timee);            }, 8f));    }    // Update is called once per frame    void Update () {        timee += Time.deltaTime;    }}


上段代码打印结果如下:
这里写图片描述




FR:海涛高软(hunk Xu)

阅读全文
0 0