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

 

返回绝对值

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

 

  • 13
    点赞
  • 87
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GreAmbWang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值