Mathf 也是很常用到的一个Struct
static
static
static
static
static
static
static
static
static
static
static
static
static
static
static
static
static
static
static
static
static
static
static
static
里面有所有数学计算时需要用到的函数。现在就逐一介绍给大家。
首先是 Class Variables
PI=π=3.1415926.....小学的小朋友们都知道的
Infinity 无穷大,∞
NegativeInfinity 无穷小,-∞
Deg2Rad Degrees to Radians conversion constant, =π*2/360。 把一个角的单位从度转换到弧度。
弧度的定义是π=3.1415926.....=180°
弧度是如何来的大家可以去百度等网站自行搜索。这个东西主要与三角函数的应用有关系。
Rad2Deg Radians to Degrees conversion constant 把一个角的单位从弧度转换为度,与Deg2Rad作用相反。
Epsilon 一个很小的浮点值,由于浮点类数值的不精确,低于此的数值都不会有很大作用。
以上都是Read Only,只能看不能改滴~
接下来就到大家常用的函数部分了
三角函数部分
Sin Cos Tan Asin Acos Atan Atan2
知道的人就知道,不知道的说了是什么你也不知道。
static function Sqrt (f : float) : float 返回f的二次方
static function Abs (f : float) : float 返回f的绝对值
static function Min (a : float, b : float) : float 返回a,b中最小的那个值
static function Max (a : float, b : float) : float 返回a,b中最大的那个值。如果你希望一个值大于a小于b(b>a),使用clamp
static function Pow (f : float, p : float) : float 返回f的p次方
static function Exp (power : float) : float 返回e的power次方
static function Log (f : float, p : float) : float 返回f的对数,基数为p
static function Log (f : float) : float 返回f的对数,基数为e
static function Log10 (f : float) : float 返回f的对数,基数为10
static function Ceil (f : float) : float 把浮点变成离自己最近的比自己大的整数浮点,比如 Ceil(3.75)=4 Ceil(3.05)=4
static function Floor (f : float) : float 把浮点变成离自己最近的比自己小的整数浮点,比如Floor(3.75)=3 Floor(3.05)=3
static function Round (f : float) : float 对f进行四舍五入然后返回一个浮点
static function CeilToInt (f : float) : int 先Ceil然后返回一个整数
static function FloorToInt (f : float) : int 先floor然后返回一个整数
static function RoundToInt (f : float) : int 先四舍五入然后返回一个整数
其实大家直接让int answer=Mathf.Ceil(f); 之类的写法也可以,返回的值可以被强制转换成int,不会报错。
static function Sign (f : float) : float 返回f的正负。 如果f是正数,返回1。如果f是负数,返回-1。
static function Clamp (value : float, min : float, max : float) : float
static function Clamp (value : int, min : int, max : int) : int
限制value的值在min和max之间, 如果value小于min,返回min。 如果value大于max, 返回max.否则返回value
static function Clamp01 (value : float) : float
限制value在0,1之间, 如果value小于0,返回0。如果value大于1,返回1。否则返回value
static function Lerp (a : float, b : float, t : float) : float 返回一个数值f,f处于a,b之间,比值为t:1 即f=a+(b-a)*t t[0,1]
static function LerpAngle (a : float, b : float, t : float) : float 同lerp一样但是可以处理角度的问题,在0°-360°之间循环时不会出错。
static function SmoothStep (from : float, to : float, t : float) : float 同Lerp一样但是在接近from和to的时候改变速度会变慢。
我理解类似一个以o为圆心的圆周运动物体的x轴的速度变化。
static function Approximately (a : float, b : float) : bool 用来判断两个浮点数是否非常接近。因为浮点的不精确性,如果使用==
来判断两个数是否相等, 如 1.0== 10.0/10.0, 有可能被认为不相等而不会返回true。所以当比较两个浮点是否相等时,建议大家用这个函数而不是 ==
static function SmoothDamp (current : float, target : float, ref currentVelocity : float, smoothTime : float, maxSpeed : float = Mathf.Infinity, deltaTime : float =Time.deltaTime) : float
逐渐的返回一个值从current一直到target。
该值是平滑的使用了一些类似弹簧阻尼功能的算法,使他永远不会跑过头。这个函数可以被用来平滑位置、颜色、缩放等很多种数值。最常用的是用来平滑一个正在跟随中的摄像机。
current是现在的位置,target是目标位置。currentVelocity是现在的速度,这个值随着你每一帧的使用而被这个函数所修改。smoothTime是大概的从current到达target的时间,数值越小到达的target的时间越快。maxSpeed保证移