首页 > 代码库 > Unity3D Time

Unity3D Time

1. deltaTime

Time类有一个重要的类变量--deltaTime,它表示距上一次调用Update或FixedUpdate所用的时间。 因此通过它可以让游戏对象按照一个常速进行旋转,而不是依赖于它的帧频:

void Update(){

transform.Rotate(0,5*Time.deltaTime,0);

}

如果想要一个值根据每帧的变化而变化(增加或减少) ,你应该使用 Time.deltaTime来乘以这个值。这样才能使得变化的效果依赖于单位时间,而不是帧频。这不仅使得游戏的运行独立于帧频,也使得运动的效果符合现实。

Eg.  想要让灯光的照射范围使每秒增加3个单位

void Update(){

light.range += 3.0*Time.deltaTime;

}

2. yield

是一个特殊类型的return语句,可以确保下一次执行的时候 不是从头开始,而是从yield出开始的

yield.WaitForSeconds(3);  延迟3秒

3. 定时重复调用可以使用InvokeRepeating函数实现

void Start () {  

InvokeRepeating("DoSomething", 1,5);//1秒后调用DoSomething() 函数,之后每5秒调用一次   

}   




Unity3D Time