unity 之Time.scaleTime属性学习笔记总结

烂笔头做笔记

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
    /// 
    /// 实验结果表明,
    /// 当timeScale = 0时
    /// 1,update依然在执行
    ///,2,FixedUpdate 不在执行
    ///3,Time.deltaTime = 0,此时可以用Time.unscaleDeltaTime代替;
    ///4.Time.fixedDeltaTime 不为零,不受timeScale影响
    /// 
	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;
        }
    }
}

 

你可能感兴趣的:(unity3d学习总结)