#一、描述
此课程介绍Time时间类和Mathf数学类的使用
#二、基本API
(1) 返回游戏开始时间到现在的持续时间
float currTime = TIme.time
(2) 返回一帧所发费的时间
float distanceTIme = Time.deltaTime;
(3) 想要在update()方法中一秒旋转30度,会根据帧所发费的时间进行旋转
transform.Rotate (Vector3.up,Time.deltaTime * 30);
(4) 返回绝对值,还有其他等数学操作类,参考Mathf类
int abs = Mathf.Abs (-3)
#三、使用示例
void Update () {
if (Input.GetKeyDown(KeyCode.P)) {
//显示从游戏开始到当前持续了多少时间,返回float秒单位
float currtime = Time.time;
print ("从游戏开始到现在 : "+ currtime);
//返回上一帧到这一帧所所发费的时间
float distanceTime = Time.deltaTime;
print ("上一帧到这一帧的时间 :" + distanceTime);
}
//Time.deltaTime就是一帧所发费的时间,比如一秒会执行60帧,
//这里需要一秒旋转30度,则我们可以求出一帧所发费的时间 * 30度,返回的就是一帧所需要旋转的角度,
//当这60帧的旋转都结束后,刚好旋转了30度,60帧发费的时间总和也刚好是1秒
transform.Rotate (Vector3.up,Time.deltaTime * 30);
//下面就是一些数学常用的工具类
int abs = Mathf.Abs (-3); // 求出绝对值:abs = 3
int max = Mathf.Max (1,2); // 求出最大值:max = 2
int min = Mathf.Min (2,1); // 求出最小值:min = 1
Mathf.Cos;
Mathf.Ceil;
Mathf.PI;
}
###三、Mathf常用方法
- 约束值在最大值和最小值之间,不会超出限制
Mathf.Clamp(distance,distanceMin,distanceMax);
- 平滑阻尼效果,当前点到目标点,有一个缓冲的效果,类似弹簧一样,一点点的过去。
public Transform target;
public float smoothTime = 0.3F;
private float yVelocity = 0.0F;
void Update() {
float newPosition = Mathf.SmoothDamp(transform.position.y, target.position.y, ref yVelocity, smoothTime);
transform.position = new Vector3(transform.position.x, newPosition, transform.position.z);
}
