【Unity】Mathf的常用函数Abs,Ceil,Floor,Lerp等

    xiaoxiao2022-07-14  152

     

    返回绝对值

    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); }

     

    最新回复(0)