Unity time相关

2021-12-06  本文已影响0人  合肥黑
一、Unity中常用Time类详解
1.只读
2.可读可写
3.用realtimeSinceStartup测试方法性能
float time_1 = Time.realtimeSinceStartup;
for (int i =0; i < runCount; i++)
{
   Method_1();
}
float time_2 = Time.realtimeSinceStartup;
Debug.Log("总时间:"+(time_2 - time_1));
4.用deltaTime控制对象移动、动画等
void Update()
{
   Cube.transform.Translate(Vector3.forward * Time.deltaTime * Speed);
}

Unity中物体移动方法详解

5.用timeScale对游戏进行加速、减速或暂停等操作
public void Pause()
{
  isPause = !isPause;
  if (isPause)
  {
     Time.timeScale = 0;
  }
  else
  {
     Time.timeScale = 1;
  }
}

timeScale官方文档 https://docs.unity.cn/cn/2019.4/ScriptReference/Time-timeScale.html

时间流逝的标度。可用于慢动作效果。

timeScale 为 1.0 时,时间流逝的速度与实时一样快。 当 timeScale 为 0.5 时,时间流逝的速度比实时慢 2x。

timeScale 设置为 0 时,如果您的所有函数都是独立于帧率的, 则游戏基本上处于暂停状态。

timeScale 影响 Time 类的所有时间和增量时间测量变量(但 realtimeSinceStartupfixedDeltaTime 除外)。

如果您减小了 /timeScale/,建议也将 Time.fixedDeltaTime 减小相同的量。

timeScale 设置为 0 时,不会调用 FixedUpdate 函数。

using UnityEngine;

public class Example : MonoBehaviour
{
    // Toggles the time scale between 1 and 0.7
    // whenever the user hits the Fire1 button.

    private float fixedDeltaTime;

    void Awake()
    {
        // Make a copy of the fixedDeltaTime, it defaults to 0.02f, but it can be changed in the editor
        this.fixedDeltaTime = Time.fixedDeltaTime;
    }

    void Update()
    {
        if (Input.GetButtonDown("Fire1"))
        {
            if (Time.timeScale == 1.0f)
                Time.timeScale = 0.7f;
            else
                Time.timeScale = 1.0f;
            // Adjust fixed delta time according to timescale
            // The fixed delta time will now be 0.02 frames per real-time second
            Time.fixedDeltaTime = this.fixedDeltaTime * Time.timeScale;
        }
    }
}
二、Unity3D研究院之Time.timeScale、游戏暂停(七十四)

Time.timeScale还会影响Time.time的时间,比如Time.timeScale = 2的话,那么Time.time的增长速度也会变成2倍速度。如果你想取到游戏的实际时间,那么使用Time.timeSinceLevelLoad就可以,前提是必须在Awake()方法以后再取,如果在Awake()方法里面取Time.realtimeSinceStartup会取出一个错误的值,在Start方法里面取的话就正常了。

上一篇 下一篇

猜你喜欢

热点阅读