返回绝对值
Mathf.Abs(10);
向上取整
Mathf.Ceil(10.1f);//返回11
Mathf.Ceil(-10.1f);//返回-10
向下取整
Mathf.Floor(10.1f);//返回10
Mathf.Floor(-10.1f);//返回-11
将值限定在范围内
Mathf.Clamp(5, 10, 100);//返回10
Mathf.Clamp(15, 10, 100);//返回15
Mathf.Clamp(105, 10, 100);//返回100
将值限定在0-1之间
Mathf.Clamp01(0.5f);
返回离2的n次幂(2,4,8,16,32)最近的数
Mathf.ClosestPowerOfTwo(5);
返回指定数的指定次幂
Mathf.Pow(3, 6);//返回3的6次幂
返回较大的值
Mathf.Max(1, 4);//返回4
返回较小的值
Mathf.Min(1, 4);//返回1
返回指定数的平方根
Mathf.Sqrt(9);//3
插值运算
float a = 5, b = 20, t = 0.5f;
print(Mathf.Lerp(a, b, t));
相当于
print(a + (b - a) * t);
我们在Update中运行,a向b靠近,但速度越来越慢,a永远无法等于b,只能无限接近b
float a = 0, b = 10;
private void Update()
{
a= Mathf.Lerp(a, b, 0.1f);
print(a);
}
匀速运动
float a = 0, b = 10;
private void Update()
{
a= Mathf.MoveTowards(a, b, 0.1f);//每帧以一定速度向目标值移动
print(a);
}
实现物体来回运行
private void Update()
{
Sphere.position = new Vector3(Mathf.PingPong(Time.time * 10, 5), 0, 0);
}