Unity的Mathf类常用函数

1、调用一次的函数

        //1.π - PI
        print(Mathf.PI);

        //2.取绝对值 - Abs
        print(Mathf.Abs(-10));
        print(Mathf.Abs(-20));
        print(Mathf.Abs(1));
        //3.向上取整 - CeilToInt
        float f = 1.3f;
        int i = (int)f;
        print(i);
        print(Mathf.CeilToInt(f));
        print(Mathf.CeilToInt(1.00001f));

        //4.向下取整 - FloorToInt
        print(Mathf.FloorToInt(9.6f));

        //5.钳制函数 - Clamp
        print(Mathf.Clamp(10, 11, 20));
        print(Mathf.Clamp(21, 11, 20));
        print(Mathf.Clamp(15, 11, 20));

        //6.获取最大值 - Max
        print(Mathf.Max(1, 2, 3, 4, 5, 6, 7, 8));
        print(Mathf.Max(1, 2));

        //7.获取最小值 - Min
        print(Mathf.Min(1, 2, 3, 4, 545, 6, 1123, 123));
        print(Mathf.Min(1.1f, 0.4f));

        //8.一个数的n次幂 - Pow
        print("一个数的n次方" + Mathf.Pow(4, 2));
        print("一个数的n次方" + Mathf.Pow(2, 3));

        //9.四舍五入 - RoundToInt
        print("四舍五入" + Mathf.RoundToInt(1.3f));
        print("四舍五入" + Mathf.RoundToInt(1.5f));

        //10.返回一个数的平方根 - Sqrt
        print("返回一个数的平方根" + Mathf.Sqrt(4));
        print("返回一个数的平方根" + Mathf.Sqrt(16));
        print("返回一个数的平方根" + Mathf.Sqrt(64));

        //11.判断一个数是否是2的n次方 - IsPowerOfTwo
        print("判断一个数是否是2的n次方" + Mathf.IsPowerOfTwo(4));
        print("判断一个数是否是2的n次方" + Mathf.IsPowerOfTwo(8));
        print("判断一个数是否是2的n次方" + Mathf.IsPowerOfTwo(3));
        print("判断一个数是否是2的n次方" + Mathf.IsPowerOfTwo(1));

        //12.判断正负数 - Sign
        print("判断正负数" + Mathf.Sign(0));
        print("判断正负数" + Mathf.Sign(10));
        print("判断正负数" + Mathf.Sign(-10));
        print("判断正负数" + Mathf.Sign(3));
        print("判断正负数" + Mathf.Sign(-2));

2、在Update函数中不停调用的

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

        //插值运算用法二
        //每帧改变t的值——变化速度匀速,位置每帧接近,当t>=1时,得到结果
        time += Time.deltaTime;
        result = Mathf.Lerp(start, 10, time);

3、三角函数相关

Rad为弧度、Deg为角度

(1)弧度角度相互转换

其中Mathf.Deg2Rad用的最多,这是一个值,大约为57(角度*57=弧度)

        //弧度转角度
        float rad = 1;
        float anger = rad * Mathf.Rad2Deg;
        print(anger);

        //角度转弧度
        anger = 1;
        rad = anger * Mathf.Deg2Rad;
        print(rad);

(2)为什么需要相互转换?

因为我们平常使用的是角度,但是Unity三角函数中使用的是弧度计算

        print(Mathf.Sin(30 * Mathf.Deg2Rad));//0.5
        print(Mathf.Cos(60 * Mathf.Deg2Rad));//0.5

4、反三角函数

由一个正弦或余弦值得到对应的弧度(得到弧度再转角度)

        rad = Mathf.Asin(0.5f);
        print(rad * Mathf.Rad2Deg);
        rad = Mathf.Acos(0.5f);
        print(rad * Mathf.Rad2Deg);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值