Time类解析

本文介绍了Unity中Time类的重要属性,如timeScale、deltaTime、time、fixedDeltaTime等,详细阐述了它们如何影响游戏时间和物理引擎。timeScale改变可以实现游戏暂停,deltaTime与fixedDeltaTime分别表示上一帧的时间差和固定更新间隔,影响Update和FixedUpdate的执行。通过调整这些参数,开发者可以精确控制游戏的节奏和物理行为。


Time.timeScale 表示游戏时间对物理时间的缩放比例,用于控制物理引擎运动和动画的速度。等于0时可以实现游戏暂停功能。

Time.deltaTime,,Time.time,Time.fixedDeltatime ,Time.fixedTime 都是被Time.timeScale缩放物理时间后的游戏时间。


可以在Eidt - >Project Settings - Times 或者代码中 修改 timeScale 和 fixedDeltatime


比如Time.timeScale = 2的话,可以这样理解 ,现在Time.fixedTime  = (原来Time.fixedTime) * 2 ,那么Time.time的增长速度也会变成2倍速度,就是物理时间的一秒相当于游戏世界中的两秒。


Time.time是从程序开始执行到游戏时间,Time.deltaTime上一帧完成的游戏时间Time.fixedTime表示FixedUpdate已经执行游戏时间,而Time.fixedDeltatime是一个固定的游戏时间增量除了fixedDeltatime其他3个值都是只读的,可以通过fixedDeltatime来改变FixedUpdate的跟新速率。


Time.realtimeSinceStartup 游戏开始执行的现在的物理时间
Time . timeSinceLevelLoad 游戏场景开始的到现在的游戏时间。

Time.timeScale越大,Time.deltaTime越大 Time.time增长速度越快,FixedUpdate执行间隔的物理时间越短。以保证每fixedDeltatime游戏时间执行一次FixedUpdate。反之亦然。


改变Time.timeScale, fixedDeltatime 不改变,Update执行间隔的物理时间不变。Update速度与fps有关。在每帧执行以后一定会执行Update方法。





void Update () {
        Debug.Log("在Update中执行");
        Debug.Log("time:"+Time.time);
        Debug.Log("deltatime"+Time.deltaTime);
        Debug.Log("fixedtime:"+Time.fixedTime);
        Debug.Log("fixedDeltatimetime:" + Time.fixedDeltaTime); 
}
    void FixedUpdate()
    {
        Debug.Log("在fixedUpdate中执行");
        Debug.Log("time:" + Time.time);
        Debug.Log("deltatime" + Time.deltaTime);
        Debug.Log("fixedtime:" + Time.fixedTime);
        Debug.Log("fixedDeltatimetime:" + Time.fixedDeltaTime); 
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值