Mathf中的比較好玩或者方便的函數

版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/qingsheng1355/article/details/54912828

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章