Mathf数学方法

Unity引擎 · 01-06 · 259 人浏览
void Start()
{
    //mathf是Unity的数学计算的结构体,用来数学计算
    //以下只进行一次计算
    //1.π
    print("π:" + Mathf.PI);
    //2.取绝对值
    print("取绝对值:"+Mathf.Abs(-10));
    //3.向上取整
    float f = 1.3f;
    print("向上取整:"+Mathf.CeilToInt(f));//2;
    //4.向下取整
    print("向下取整:" + Mathf.FloorToInt(9.6f));//1
    //5.钳制函数 clamp,参1在参2和参3之间,就取参1的值,
    //参1比参2小,取参2,参1比参3大,取参3
    print(Mathf.Clamp(10, 11, 20));//11
    print(Mathf.Clamp(21, 11, 20));//20
    print(Mathf.Clamp(15, 11, 20));//15
    //6.获取最大值 max
    //在一堆数中取最大的
    print(Mathf.Max(1,2,3,8,9));
    //7.获取最小值 min
    print(Mathf.Min(1, 2, 3, 4, -1, 0));
    //8.一个数的n次方
    //4的2次方
    //参1 要算的数 参2 几次方
    print("一个数的N次方:"+Mathf.Pow(4,2));
    //9.四舍五入
    print(Mathf.RoundToInt(3.5f));//4
    print(Mathf.RoundToInt(3.2f));//4
    //10.返回一个数的平方根
    print(Mathf.Sqrt(4));//2
    //11.判断一个数是否是2的n次方
    print(Mathf.IsPowerOfTwo(4)); //true
    print(Mathf.IsPowerOfTwo(8)); //true
    print(Mathf.IsPowerOfTwo(3)); //false
    //12.判断正负数 正数(包含0)返回1  负数返回-1
    print("判断正负数"+Mathf.Sign(0));

}

//开始值
float start = 0;
float result = 0;
float time = 0;
// Update is called once per frame
void Update()
{
    //插值运算 Lerp
    //公式
    //result=Mathf.Lerp(start,end,t)
    //t为插值系数,取值范围是0-1
    //result=start+(end-start)*t

    //用法一
    //每帧改变start的值-变化速度先快后慢,位置无限接近,但是不会得到end的值
    //start = Mathf.Lerp(start, 10, Time.deltaTime);

    //用法二
    //每帧改变t的值-变化速度匀速,位置每帧接近,当t>=1时,得到结果
    time += Time.deltaTime;

    result = Mathf.Lerp(start, 10, time);
    print("result:" + result);
}
Theme Jasmine by Kent Liao