您的位置:首页 > 移动开发 > Unity3D

[Unity脚本基础] 代码解析

2017-05-02 11:22 169 查看
Time
时间体系

变量 
 
      time: 从游戏开始到现在所用的时间
 
      timeSinceLevelLoad:这是以秒计算到最后的关卡已经加载完的时间 
 
      deltaTime:以秒计算,完成最后一帧的时间  
 
      fixedTime:这是以秒计自游戏开始的时间 
 
      fixedDeltaTime:以秒计间隔,在物理和其他固定帧速率进行更新
 
      maximumDeltaTime:一帧能获得的最大时间,物理和其他固定帧率更新
 
      smoothDeltaTime:一个平滑淡出 Time.deltaTime 
 
      timeScale:传递时间的缩放,这可以用于减慢运动效果
 
      frameCount:已经传递的帧的总数  <
11bbd
/span>
 
      realtimeSinceStartup:以秒计,自游戏开始的实时时间 
 
      captureFramerate:时间会在每帧(1.0/captureFramerate)前进,不考虑真实时间
 
      unscaledDeltaTime:以秒计算,完成最后一帧的时间(不计算Timescale) 
 
      unscaledTime:从游戏开始到现在所用的时间(不计算Timescale)  

 
      当利用 TimeScale 做慢镜头的时候如果不改变 fixedDeltaTime 会变的非常卡顿,需要将fixedDeltaTime 值变小才会流畅。

Random
随机数

变量
 
      seed:设置用于随机生成器的种子
 
      value:返回一个随机数,在 0.0 ~ 1.0 之间
 
      insideUnitCircle:返回半径为1的圆内的一个随机点
 
      insideUnitSphere:返回半径为1的球体内的一个随机点
 
      onUnitSphere:返回半径为1的球体表面上的一个随机点
 
      rotation:返回一个随机旋转角度
 
      rotationUniform:返回一个随机旋转角度(平均分布)
 
      float Range(min,max) 返回一个随机 float/int 数,在 min 和 max 之间
Mathf
数学运算:基本运算

 
      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
 
      

[align=center]Mathf 数学运算:曲线变换[/align]

 
      以下这些方法都是:给出一个 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():随着时间的推移逐渐改变一个给定的角度到期望的角度
 
      参数:同上

[align=center]Mathf 数学运算:其他函数[/align]

 
      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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: