【unity】Time中各不同

可以直接先打印下面这些关于时间变量,让我们更加的直观去了解到他们都有些什么不同。

private void Update()
{      
    Debug.Log("**************我是分割线*************");
    Debug.Log("time:" + Time.time);
    Debug.Log("deltatime" + Time.deltaTime);
    Debug.Log("timeScale:" + Time.timeScale);
    Debug.Log("fixedDeltatimetime:" + Time.fixedDeltaTime);
}
private void FixedUpdate()
{
    Debug.LogWarning("**************我是分割线*************" );
    Debug.LogWarning("time:" + Time.time);
    Debug.LogWarning("deltatime:" + Time.deltaTime);
    Debug.LogWarning("timeScale:" + Time.timeScale);
    Debug.LogWarning("fixedDeltatimetime:" + Time.fixedDeltaTime);
}

截取一段打印来看看吧。

Update
FixedUpdate
Time.deltaTime

是距离上一次调用Update或FixedUpdate所用的时间。

通俗点理解就是在移动或者转向等物体操作中,用这个就可以转为以秒来计算,如下面的就是以每秒10米的距离走。

void Update() {
        float translation = Time.deltaTime * 10;
        transform.Translate(0, 0, translation);
    }

在Update这是要根据Update刷新率有关。
在FixedUpdate这个是与fixedDeltaTime一样的。

Time.time

这个值是程序开始运行那一刻开始计时的数值。

Time.fixedDeltaTime

这个是表示FixedUpdate调用的时间间隔的。可以在Edit>Project Setting>Time>Fixed Timestep 这里设置,也可以用代码设置,单位是秒。

Time.fixedDeltaTime = 1;
Time.timeScale

这个用来做游戏加速和暂停,这个值默认为一。简单可以理解为游戏的播放速度,当速度为0时就差不多暂停。值得注意的是当这个值为0时,Update与LateUpdate是不会停止刷新的,FixedUpdate就会停止。

timeScale为0时其他值在Update中的数值

可以看到deltatime为0了,以为着用到这个东西的都会停止,像是移动或者旋转之类的。
具体的怎么用可以看看这个帖子写的很清楚,因为我也没有具体用过这个,万一说错了就不好了,哈哈哈,等以后具体用了,再来写一写具体的用户感受吧。恩,那就先这样吧。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,845评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,924评论 25 708
  • 111. [动画系统]如何将其他类型的动画转换成关键帧动画? 动画->点缓存->关键帧 112. [动画]Unit...
    胤醚貔貅阅读 13,148评论 3 90
  • 花钱消费还是背后受累?为什么人们愿意参加培训而很少去读书? 这个问题是彭小六的《让未来现在就来》一书里提出的一个问...
    彩色0K阅读 318评论 0 1
  • 白先勇的《寂寞的十七岁》,我在那自白式的文字中真真切切体会到了那种冷到心颤的寂寞。每个人生来都是孤独的、寂寞的,只...
    张圆词阅读 228评论 0 2