实验一。下面代码中虽然停止ot,接下来的invoke有等待时间,但是start和f中的内容都执行了。
如果用waitforseconds,即使是0秒,后面的也不执行了!!!!主要是waitforseconds前有yield,
也就是等下一帧才开始执行waitforseconds,但是下一帧之前该携程已经停止了(对于该实验)。
也就是stopcoroutine只和相应的携程有关,和等待时间是无关的。
实验二。如果是把Time.timescale=0,涉及等待时间(大于零秒)的都会暂停!!!但是update之类不暂停!!!
using UnityEngine;
using System.Collections;public class invokeyield : MonoBehaviour {
// Use this for initialization
IEnumerator Start () {
yield return StartCoroutine ("ot");
Debug.Log ("555");
}
IEnumerator ot()
{
for(int i=0;i<2;i++){
yield return new WaitForSeconds (2);
Debug.Log ("444");
}
// Time.timeScale=0;
//yield return new WaitForSeconds (0);
Invoke ("f",1);
}
void f()
{
Debug.Log ("f");
}
// Update is called once per frame
void Update () {
}
}