Unity中的Mathf数学运算讲解(值得收藏)

在这里插入图片描述

Unity中的Mathf数学运算有哪些?

Mathf.Abs(f)绝对值
计算并返回指定参数 f 绝对值
例如:

// 输出 10
Debug.log(Mathf.Abs(-10))
Debug.log(Mathf.Abs(10))

Mathf.Sin正弦
static function Sin (f : float) : float
计算并返回以弧度为单位指定的角 f 的正弦值


Mathf.Asin反正弦
static function Asin (f : float) : float
以弧度为单位计算并返回参数 f 中指定的数字的反正弦值
在这里插入图片描述


Mathf.Cos余弦
static function Cos (f : float) : float
返回由参数 f 指定的角的余弦值


Mathf.Acos反余弦
static function Acos (f : float) : float
以弧度为单位计算并返回参数 f 中指定的数字的反余弦值。
在这里插入图片描述


Mathf.Approximately近似
static function Approximately (a : float, b: float) : bool
比较两个浮点数值,看它们是否非常接近, 返回bool值。由于浮点数值不精确,不建议使用等于来比较它们。例如,1.0==10.0/10.0也许不会返回true

   if(Mathf.Approximately(1.0F, 10.0F / 10.0F)) 
   {
       Debug.log("true"); 
   }

Mathf.Sqrt平方根
static function Sqrt (f : float) : float
计算并返回 f 的平方根
在这里插入图片描述


Mathf.SmoothStep平滑插值
static function SmoothStep (from : float,to : float, t : float) : float
和lerp类似,在最小和最大值之间的插值,并在限制处渐入渐出

public float min = 1f; 
public float max = 15.0f; 
 void Update() { 
  transform.position= new Vector3(Mathf.SmoothStep(min, max, Time.time), 0, 0);
} 

Mathf.CeilToInt最小整数
static function CeilToInt (f : float) : int
返回最小的整数,该整数大于或等于f


Mathf.FloorToInt最大整数
static function FloorToInt (f : float) :int
返回最大的整数,该整数小于或等于f


Mathf.Ceil上限值
static function Ceil (f : float) : float
返回 f 指定数字或表达式的上限值。数字的上限值是大于等于该数字的最接近的整数
例如:

// 输出 11
Debug.Log(Mathf.Ceil(10.2F));
//输出 -10
Debug.Log(Mathf.Ceil(-10.2F));

Mathf.Floor下限值
static function Floor (f : float) : float
返回参数 f 中指定的数字或表达式的下限值。下限值是小于等于指定数字或表达式的最接近的整数。
例如:

// 输出 10
Debug.Log(Mathf.Floor(10.2F));
//输出 -11
Debug.Log(Mathf.Floor(-10.2F));

Mathf.Clamp限制
static function Clamp (value : float, min :float, max : float) : float
限制value的值在min和max之间, 如果value小于min,返回min;如果value大于max,返回max,否则返回value

static function Clamp (value : int, min :int, max : int) : int
限制value的值在min和max之间,并返回value,同理


Mathf.Clamp01限制0~1
static function Clamp01 (value : float) :float
限制value在0,1之间并返回value。如果value小于0,返回0。如果value大于1,返回1,否则返回value

Mathf.Exp指数
static function Exp (power : float) : float
返回 e 的 power 次方的值。


Mathf.ClosestPowerOfTwo最近的二次方
static function ClosestPowerOfTwo (value :int) : int
返回距离value最近的2的次方数。


Mathf.Deg2Rad度转弧度 (只读)
static var Deg2Rad : float
度到弧度的转化常量。这等于(PI * 2) / 360。


Mathf.Mathf.Rad2Deg 弧度转度
static var Rad2Deg : float
弧度到度的转化常量。(只读)
这等于 360 / (PI * 2)。


Mathf.IsPowerOfTwo是否2的幂
static function IsPowerOfTwo (value : int): bool
如果该值是2的幂,返回true。

Debug.Log(Mathf.IsPowerOfTwo(5)); //  false 
Debug.Log(Mathf.IsPowerOfTwo(64)); //  true 

Mathf.Lerp插值
static function Lerp (from : float, to :float, t : float) : float
基于浮点数t返回a到b之间的插值,t限制在0~1之间。
当t = 0返回from,当t = 1 返回to。当t = 0.5 返回from和to的平均值


Mathf.LerpAngle插值角度
static function LerpAngle (a : float, b :float, t : float) : float
和Lerp的原理一样,当他们环绕360度确保插值正确。
a和b是代表度数。

    public float minAngle = 0.0F; 
    public float maxAngle = 90.0F; 
    void Update()
    { 
      floatangle = Mathf.LerpAngle(minAngle, maxAngle, Time.time); 
      transform.eulerAngles= new Vector3(0, angle, 0); 
    } 

Mathf.SmoothStep平滑插值
static function SmoothStep (from : float,to : float, t : float) : float
和lerp类似,在最小和最大值之间的插值,并在限制处渐入渐出。

    public float minimum = 10.0F; 
    public float maximum = 20.0F; 
    void Update() { 
       transform.position=newVector3(Mathf.SmoothStep(minimum,maximum, Time.time), 0, 0);
    } 

Mathf.Max最大值
static function Max (a : float, b : float): float
static function Max (params values :float[]) : float
返回两个或更多值中最大的值。


Mathf.Min最小值
static function Min (a : float, b : float): float
static function Min (params values :float[]) : float
返回两个或更多值中最小的值。


Mathf.MoveTowardsAngle移动角
static function MoveTowardsAngle(current :float, target : float,maxDelta:float): float
变量current和target是度数。为优化原因,maxDelta负值的不被支持,可能引起振荡。


Mathf.MoveTowards移向
static function MoveTowards (current :float, target : float, maxDelta : float) : float
改变一个当前值向目标值靠近。
这实际上和 Mathf.Lerp相同,而是该函数将确保我们的速度不会超过maxDelta。maxDelta为负值将目标从推离。


Mathf.PingPong乒乓 (做来回运动时常用到)
static function PingPong (t : float, length: float) : float
0到length之间往返。t值永远不会大于length的值,也永远不会小于0。
返回值将在0和length之间来回移动。


Mathf.PI圆周率
static var PI : float
PI的值,也就是圆周率(π)的值3.14159265358979323846…(只读)


Mathf.Pow次方
static function Pow (f : float, p : float): float
计算并返回 f 的 p 次方。


Mathf.Repeat重复
static function Repeat (t : float, length :float) : float
循环数值t,0到length之间。t值永远不会大于length的值,也永远不会小于0。
这是类似于模运算符,但可以使用浮点数。

void Update() { 
transform.position=newVector3(Mathf.Repeat(Time.time,3),transform.position.y,transform.position.z); 
} 

Mathf.Round四舍五入
static function Round (f : float) : float
返回浮点数 f 进行四舍五入最接近的整数。
如果数字末尾是.5,因此它是在两个整数中间,不管是偶数或是奇数,将返回偶数。


Mathf.RoundToInt四舍五入到整数
static function RoundToInt (f : float) :int
返回 f 指定的值四舍五入到最近的整数。
如果数字末尾是.5,因此它是在两个整数中间,不管是偶数或是奇数,将返回偶数

以上就是所使用到的Mathf数学运算,如有不清楚的可评论区留言
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Mr.Y仙森

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

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

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

打赏作者

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

抵扣说明:

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

余额充值