unity中的基础数学
Mathf.Ceil() 向上取整 例如 Mathf.Ceil(10.2f) 得到的是 11 Mathf.Ceil(-10.2f) 得到的是 -10
Mathf.floor() 向下取整 同上相反 10.2f 得到 10 -10.2 得到的是 -11
Mathf.Round() 向近取整 10.2 得到 10 , 10.6 得到 11 那麼 如果是 10.5 則取決於個位數的奇偶性 如果個位是 奇數則向上取整 如果是偶數則向下取整
Mathf.Sign() 判斷輸入的正負,如果是正則返回0 或 1 如果是負 則返回 -1
Mathf.Clamp(int CompareNum,int Max,int Min) 限製大小,如果輸入大於最大數則返回最大數,小於最小數則返回最小數,否則返回自身
Mathf.Clamp01() 限製 value 在 0,1之間,大於1返回1,小於 0 返回0 否則返回 value
以下這些方法都是:給出一個 startPoint 起始點,和一個finalPoint 終點,然後從起始點移動到終點的方法,隻不過是實現的效果不同。
Lerp(): 基於浮點數 t 返回 a 到 b 之間的插值
參數:float min ,float max , float t
LerpAngle():基於浮點數 t 返回 a 到 b 之間的角度插值
參數:float min,float max , float t
MoveTowards():改變一個當前值向目標值靠近
參數:float current,float current,float maxDelta
MoveTowardsAngle():改變一個當前值向目標角度值靠近
參數:同上
SmoothStep():和 lerp 類似,在最小和最大值之間的插值,並在限製處漸入漸出
參數:用法與 lerp 一樣
SmoothDamp():隨著時間的推移逐漸改變一個值到期望值
參數:float current,float target,float currentVelocity,float smoothTime,float maxSpeed = Mathf.Infinity,float deltaTime = Time.deltaTime
currentVelocity 當調用方法的時候每一幀的速度,smoothTime 到達目標的時間。
SmoothDampAngle():隨著時間的推移逐漸改變一個給定的角度到期望的角度
參數:同上
InverseLerp():算出現在在起始點到終點的百分比
參數:float from,float to,float value value 是當前點 返回值為 float
可以用作推斷當前動畫的狀態
Repeat():類似於動畫曲線中的 Loop ,重複
Pingpang():類似於動畫曲線中的 Pingpong ,往複性的重複
GammaToLinearSpace():輸入與輸出都是一個 0 - 1 的區間(顏色區間),讓數值從Gamma屬性增長變成線性增長
LinearToGammaSpace():輸入與輸出都是一個 0 - 1 的區間(顏色區間),讓數值從線性屬性增長變成 Gamma 屬性增長
Gamma 圖的色彩顯示效果會好一點,但是 Gamma 數值計算比較複雜,所以我們一般采用先將 Gamma 值轉為線性值進行計算,然後再轉為 Gamma 值進行顯示
PerlinNoise():噪聲圖,其實也是隨機數,但是與隨機數不同是返回的是一個有梯度的值,每次生成的隨機數不會有太大的跳躍,而是沿著隨機方向進行變化的一組數。
參數:float x,float y
- 下一篇:AssetBundle资源打包
- 上一篇:震屏效果