烂笔头做笔记
Time.scale属性,官方解释为:
The scale at which time passes. This can be used for slow motion effects.
大致以为是,是时间流转的scale(比例,尺度)。可以用来慢动作效果,当值为1的时候,是真实时间。当值为2是,表示时间加快2倍,值小于1的时候,表示时间变慢。等于0时表示暂停
以下代码是实验中,验证scaleTime属性等于0时,对update和fixedupdate的影响
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TimeDemo : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
/// <summary>
/// 实验结果表明,
/// 当timeScale = 0时
/// 1,update依然在执行
///,2,FixedUpdate 不在执行
///3,Time.deltaTime = 0,此时可以用Time.unscaleDeltaTime代替;
///4.Time.fixedDeltaTime 不为零,不受timeScale影响
/// </summary>
void Update () {
Debug.Log("Update....");
Debug.Log("Update TimeDelta is " + Time.deltaTime);//
//Debug.Log("Update TimeUnScaleTiem is " + Time.unscaledDeltaTime);
Debug.Log("Update fixdeltaTime is " + Time.fixedDeltaTime);
}
private void FixedUpdate()
{
Debug.Log("FixedUpdate....");
}
private void OnGUI()
{
if (GUILayout.Button("时间暂停"))
{
Time.timeScale = 0;
}
if (GUILayout.Button("恢复时间"))
{
Time.timeScale = 1;
}
}
}