Mathf中的比较好玩或者方便的函数

Mathf.Infinity 正无穷大

Mathf.NegativeInfinity 负无穷大

Mathf.Abs 绝对值

int Abs(int value)
float Abs(float value)
这个不用多说,是计算并返回绝对值

Mathf.Ceil 最小整数(向上取整)

float Ceil(float value)
用来返回大于或者等于浮点数value的一个最小整数(注意:返回的是一个falot类型)

Mathf.CeilToInt 最小整数(向上取整)

int CeilToInt(float value)
和Ceil一样,只不过返回的是一个int类型

Mathf.Floor 最大整数(向下取整)

float Floor(float value)
用来返回小于或等于浮点数value的一个最大整数(注意:返回的是一个falot类型)

Mathf.FloorToInt 最大整数(向下取整)

float Floor(float value)
和Floor一样,只不过返回的是一个int类型

Mathf.Approximately 近似

bool Approximately(float a,float b)
比较两个浮点数是否相近
程序里面有时候会出现想将两个浮点数对比的情况,但是浮点数有可能因为精度问题不等,比如1f和1f/1f,有可能会出现1f==1f/1f位false的情况,所以用Approximately要保险一些。

Mathf.Epsilon 小正数

一个很小的浮点数值,但不同于0
规则:
- anyValue + Epsilon = anyValue 
- anyValue - Epsilon = anyValue 
- 0 + Epsilon = Epsilon
- 0 - Epsilon = -Epsilon 
有点像Approximately的偏差值
bool isEqual(float a, float b) { 
    if(a >= b - Mathf.Epsilon && a <= b + Mathf.Epsilon) 
        return true; 
    else 
        return false; 
}

Mathf.Clamp 限制数

int Clamp(int value ,int min ,int max)
float Clamp(float value,float min,float max)
返回限制在min和max中的数,比如min为0,max为1,如果value为2的话,返回的是1,如果value为-1的话返回的是0。只有当value为min和max之间才返回的是value。

Mathf.Clamp01 限制数在0和1之间

float Clamp(float value)
和Clamp一样,只不过自动将min设置为了0,max设置为了1。

Mathf.Deg2Rad 度转弧度常量

弧度=度*Mathf.Deg2Rad
其实就等于(PI * 2) / 360。

Mathf.Rad2Deg 弧度转度常量

度=弧度*Mathf.Rad2Deg 
其实就等于360 / (PI * 2)

Mathf.ClosestPowerOfTwo 最近的二次方数

int ClosestPowerOfTwo(int value)
返回距离value最近的2的次方数。
比如Mathf.ClosestPowerOfTwo(19)返回16,因为19离2的4次方最近,于是返回了2的4次方

Mathf.NextPowerOfTwo 下一个二次方数

int NextPowerOfTwo (int value)
返回距离value最近的下一个2的次方数。
比如Mathf.NextPowerOfTwo(7)返回8

Mathf.DeltaAngle 增量角

float DeltaAngle(float current,float target)
计算给定的两个角之间最短的差异。
比如Mathf.DeltaAngle(1080,90)就会输出90。

Mathf.IsPowerOfTwo 是否是2的幂

bool IsPowerOfTwo(int value)
返回value是否是2的几次方

Mathf.Lerp 插值

float Lerp(float from,float to,float t)
返回基于浮点数t返回from到to之间的插值,t要在0和1之间
如果t=0.5的话,就返回from和to的中间值

Mathf.Max 最大值

float Max(float a,float b)
float Max(params float[] values)
返回最大的值

Mathf.Min 最小值

float Min(float a,float b)
float Min(params float[] values)
返回最小的值

Mathf.MoveTowards 移向

float MoveTowards(float current,float target,float maxDelta)
是一个值向目标值靠近,速度不超过maxDelta,如果maxDelta为负的话将会将远离

Mathf.PingPong 乒乓

float PingPong(float t,float length)
在0到length之间往返。t值永远不大于length,也不会小于0。
由0到length再由length到0往返

Mathf.Repeat 重复

float Repeat(float t,float length)
和PingPong很像,只不过这个是从0到length之后再回到0再到length。

Mathf.Pow 次方

float Pow(float f,float p)
返回f的p次方

Mathf.Round 四舍五入

float Round(float f)
返回四舍五入值,但如果数字末尾为.5,因此它是在两个整数中间,不管是偶数或是奇数,将返回偶数。

Mathf.RoundToInt四舍五入

int RoundToInt(float f)
换Round很像,只不过返回值为整数

Mathf.Sign 符号

float Sign(float f)
如果f为正或者为0,就返回1,如果为负就返回-1

你可能感兴趣的:(Unity--开发实战)