Unity学子之Mathf运算

在最近学习的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)每次都可能不会返回trueApproximately()比较两个浮点数,如果它们在彼此的小值(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
相关色温定义为从理想黑体发射的电磁辐射的色温,其表面温度以开尔文度给出。
温度必须在100040000度之间

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.01.0之间。(返回值可能稍微超过1.0。)

生成2D Perlin噪音。

Perlin噪声是在2D平面上生成的浮点值的伪随机模式(尽管该技术确实推广到三维或更多维,但这在Unity中没有实现)。噪声在每个点上不包含完全随机的值,而是由组成,其值在整个模式中逐渐增大和减小。噪声可以用作纹理效果的基础,也可以用于动画,生成地形高度图和许多其他内容。Perlin噪声采样范围为0..10(灰度值表示0..1的值)
可以通过传递适当的XY坐标对平面中的任何点进行采样。相同的坐标将始终返回相同的样本值,但平面基本上是无限的,因此通过选择要从中进行采样的随机区域,可以轻松避免重复。

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)

在极限之间插入minmax平滑处理。

此函数在Lerp之间插入,minmax以类似的方式插入。但是,插值将从开始逐渐加速(从from逐渐向to加速),然后向下慢化。这对于创建自然的动画,淡入淡出和其他过渡非常有用。

41)Mathf.Sqrt

Public static Sqrt(float f)

返回f的平方根

42)Mathf.Tan

Public static Tan(float f)

返回f的正切值

猜你喜欢

转载自blog.csdn.net/qq_42246149/article/details/84502581
今日推荐