您好,欢迎来到Unity之家!   unity.jb51.net 
  • 首 页
  • 你问我答
  • 当前位置:首页 > 学习培训 > Unity入门 >
    Mathf 学习和应用
    时间:2015-05-05 08:48 来源:Unity之家 作者:unity.jb51.net 浏览:收藏 挑错 推荐 打印


    Mathf 也是很常用到的一个Struct

    里面有所有数学计算时需要用到的函数。现在就逐一介绍给大家。


    首先是 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保证移





    (责任编辑:脚印)
    免责声明:Unity之家部分内容来源于互联网,如有侵权,请联系我们,本站将立即进行处理。