在最近学习的unity自带的第三人称时,在学习其的脚本总结了Mathf运算中的函数,有些是直接翻译官方的,有些是自己用过写下的总结,由于有些地方也不是很懂,直接看官方的API。如有错误请指出谢谢。
1)Mathf.Abs
Public static float Abs(float f);
返回绝对值f
Public static int (int a)
返回绝对值a
2)Mathf.Acos
Public static float Acos(float f)
返回f的反余弦值
3)Mathf.Approximately
Public static bool Approximately(float a, float b)
比较两个浮点值,如果相近返回true,
浮点不精确使得使用等于运算符的浮点数不准确。例如,(1.0 == 10.0 / 10.0)
每次都可能不会返回true。Approximately()比较两个浮点数,如果它们在彼此的小值(Epsilon)内,则返回true 。
4)Mathf.Asin
Public static float Asin(float f)
返回f的反正弦值
5)Mathf.Atan
Public static float Atan(float f)
返回f的反正切值
6)Mathf.Atan2
Public static float Atan2(float y, float x)
返回tan为y/x的以弧度为单位的角
此函数是预防x为0的情况,当x为0的时候可以进行计算并返回正确的值,而不是抛出除零异常
7)Mathf.ceil和Mathf.ceilToint
Public static float ceil(float f)
返回大于或等于f的最小整数值(浮点型)
Public static int ceilToint(float f)
返回大于或等于f的最小整数值(整数型)
8)Mathf.Clamp
Public static float Clamp(float value,float min,float max)
若value值在min和max之间,返回value,若小于min,返回min,若大于max返回max
9)Mathf.Clamp01
Publics static float Clamp01(float value)
value值介于0和1之间进行输出
10)Mathf. ClosestPowerOfTwo
Public static float ClosestPowerTwo(float value)
返回最接近value的2的幂的值
11)Mathf. CorrelatedColorTemperatureToRGB
Public static Color CorrelatedColorTemperatureToRGB(float kelvin)
kelvin以开尔文为单位。范围在1000到40000,
将开尔文的色温转换为RGB颜色。
给定相关色温(以开尔文为单位),估算RGB当量。曲线拟合误差最大为0.008。
相关色温定义为从理想黑体发射的电磁辐射的色温,其表面温度以开尔文度给出。
温度必须在1000到40000度之间
12)Mathf.Cos
Public static float Cos(float f)
返回f的余弦值
13)Mathf.DeltaAngle
Public static float DeltaAngle(float current ,float target)
返回target - current的差值
14)Mathf.Exp
Public static float Exp(float power)
返回e的power次方的值
15)Mathf.floor和Mathf.floorToint
Public static float Floor(float f)
返回小于或等于f的最小整数值(浮点型)
Public static int floorToInt(int f)
返回小于或等于f的最小整数值(整数型)
?16)Mathf.GammaToLinearSpace
Public static float GammaToLinearSpace(float value)
将给定值从gamma (sRGB)转换为线性颜色空间。
17)Mathf.InverseLerp
Public static float InverseLerp(float a,float b,float value)
返回value在a和b之间所占的百分比值
18)Mathf.IsPowerOfTwo
Public static bool IsPowerOfTwo(int value)
若value可以被2整除,返回true,若不可以返回false
19)Mathf.Lerp
Public static float Lerp(float a, float b,float t)
t是a到b之间的差值(类似百分比)
t的取值范围在0-1,当t=0时,返回a,当t=1时,返回b,t=0.5,返回中间值,
20)Mathf.LerpAngle
Public static float LerpAngle(float a ,float b, float t)
和lerp原理是相同,只不过这个是个角度的差值,确保在360环绕时能做出正确的环绕差值
?21)Mathf.LerpUnclamped
Public static float LerpUnclamped(float a,float b, float t)
和lerp原理相同,只是这里的t并没有受限制,可以超出范围,
计算过程,c=(b-a)/t,若t小于a,从a中减去c,就是返回值
?22)Mathf. LinearToGammaSpace
Public static float LinearToGammaSpace
将给定值从线性颜色空间转换为gamma (sRGB)。
23)Mathf.log
Public static float Log(float f,float p)
返回以p为底f的对数
24)Mathf.log10
Public static float Log10(float f)
返回以10为底f的对数
25)Mathf.Max
Public static float Max(float a,float b)
Public static float Max(float []values)
返回两个或多个值其中最大的一个
26)Mathf.Min
Public static float Min(float a,float b)
Public static float Min(float []values)
返回两个或多个值其中最小的一个
27)Mathf.MoveToWards
Public static MoveToWards(float current,float target float maxDelta)
与mathf.lerp()差不多,但是确保了current的值不会超过maxDelta
?28)Mathf.MoveToWardsAngle
Public static MoveToWardsAngle(float current,float target float maxDelta)
与movetowards方法差不多,只不过换成角度了,确保在360环绕时插入正确的值,由于优化原因,maxDelta不能为负值,可能会引起震荡
29)Mathf.NextPowerOfTwo
Public static int NextPowerOfTwo(int value)
返回两个值的下一个幂。
?30)Mathf.PerlinNoise
Public static float PerlinNoise(float x,float y)
float 值介于0.0和1.0之间。(返回值可能稍微超过1.0。)
生成2D Perlin噪音。
Perlin噪声是在2D平面上生成的浮点值的伪随机模式(尽管该技术确实推广到三维或更多维,但这在Unity中没有实现)。噪声在每个点上不包含完全随机的值,而是由“波”组成,其值在整个模式中逐渐增大和减小。噪声可以用作纹理效果的基础,也可以用于动画,生成地形高度图和许多其他内容。Perlin噪声采样范围为0..10(灰度值表示0..1的值)
可以通过传递适当的X和Y坐标对平面中的任何点进行采样。相同的坐标将始终返回相同的样本值,但平面基本上是无限的,因此通过选择要从中进行采样的随机区域,可以轻松避免重复。
31)Mathf.pingpong
Public static float Pingpong(float t,float length)
返回值t将在0和length之间移动,不会超出这个范围
32)Mathf.Pow
Public static float Pow(float f,float p)
返回f的p次方
33)Mathf.Repeat
Public static float Repeat(float t,float length)
返回从0到length之间的值,循环t-length(不为负数)循环到无法再减时输出
34)Mathf.Round和Mathf.RoundToInt
Public static float Round(float t)
返回t四舍五入的最近整数值,当t小数后为.5时,则代表t位于两个整数之间,一边是偶数。一边是奇数,则返回偶数
36)Mathf.Sign
Public static float Sign(float t)
当t是正数或0时,返回1,当t为负数时,返回-1
37)Mathf.Sin
Public static float Sin(float f)
返回f的正弦值
38)Mathf.SmoothDamp
public static float SmoothDamp(float current, float target, ref float currentVelocity, float smoothTime, float maxSpeed = Mathf.Infinity, float deltaTime = Time.deltaTime);
随着时间的推移,逐渐将一个值改变为想要的目标值。
current |
The current position. |
target |
The position we are trying to reach. |
currentVelocity |
The current velocity, this value is modified by the function every time you call it. |
smoothTime |
Approximately the time it will take to reach the target. A smaller value will reach the target faster. |
maxSpeed |
Optionally allows you to clamp the maximum speed. |
deltaTime |
The time since the last call to this function. By default Time.deltaTime. |
Current:当前的位置
Target:想要到达的位置
currentVelocity:当前速度,每次函数调用都会改变
smoothTime:想要到达目标的时间
maxspeed:最大速度
deltaTime:上一帧结束到下一帧开始的时间
39)Mathf.SmoothDampAngle
public static float SmoothDampAngle(float current, float target, ref float currentVelocity, float smoothTime, float maxSpeed = Mathf.Infinity, float deltaTime = Time.deltaTime);
随着时间的推移,逐渐改变给定的角度,使之朝着目标角度倾斜
参数设置是与SmoothDamp函数相同的,只不过这里是角度,
这两个函数可以用来平滑任何类型的值,位置、颜色。
40)Mathf.SmoothStep
Public static SmoothStep(float from,float to,float t)
在极限之间插入min
和max
平滑处理。
此函数在Lerp之间插入,min
并max
以类似的方式插入。但是,插值将从开始逐渐加速(从from逐渐向to加速),然后向下慢化。这对于创建自然的动画,淡入淡出和其他过渡非常有用。
41)Mathf.Sqrt
Public static Sqrt(float f)
返回f的平方根
42)Mathf.Tan
Public static Tan(float f)
返回f的正切值