Unity - A计划(一年有效期) 扫二维码继续学习 二维码时效为半小时

(61评价)
价格: 2155.00元
关于Time这个类
tttttttf发起了问答2018-04-26
3
回复
503
浏览

老师,请问我这段程序为什么输出不符合逻辑呢,我看遍了unityAPI和百度搜索出来的东西,任然不懂

代码------------------------------------------------------------

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test1 : MonoBehaviour {

	// Use this for initialization
	void Start () {

        StartCoroutine(A());
        StartCoroutine(B());
        Invoke("C",.3f);
	}

    IEnumerator A()
    {
        Debug.Log("AAA" + Time.time);
        Debug.Log("AAA" + Time.unscaledTime);
        Debug.Log("AAA"+Time.timeScale);
        yield return new WaitForSeconds(.1f);
        Debug.Log("AAA"+Time.time);
        Debug.Log("AAA" + Time.unscaledTime);
    }

    IEnumerator B()
    {
        yield return new WaitForSecondsRealtime(.2f);
        Debug.Log("BBB"+Time.time);
    }

    void C()
    {
        Debug.Log("CCC"+Time.time);
    }
}

打印结果-----------------------------------------------------------------------------

所有回复
  • siki 2018-04-27

    你说的哪一行不符合逻辑呢,输出有什么问题吗,按照你的逻辑的话应该是什么样子

    • tttttttf 2018-04-28

      协程A 是0.1s的延迟 , 协程B 是0.2s的延迟,Invoke是0.3s的延迟
      它们的输出应该 先打印A 再打印B 再打印C 才对,可现在输出完全反过来了

      (0) 回复
    还有-4条回复,点击查看
    你还没有登录,请先登录注册
  • siki 2018-04-29

    这个因为可能是由于在unity里面的协程本质上,不是线程,所以是有程序来协调调用的,在时间暂停上并不会像线程那么精准

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
发表回复
你还没有登录,请先 登录或 注册!