Unity基础.004数学基础类:Time、Random以及Mathf

来源:互联网 发布:linux 拷贝文件 编辑:程序博客网 时间:2024/05/20 18:02
在Unity中,有一些基础的数学类Time(时间)、Random(随机)、Mathf(数学),我们可以通过Time类来控制时间,Random可以使用随机数来实现各种游戏中的随机效果,Mathf可以使用各种数学运算来实现更丰富的变换。

Time类(获取时间信息的接口)

Time类中提供的都是一些静态的变量,当我们修改了某个非只读变量时,整个游戏中该变量的值都会被修改。
非只读静态变量:
fixedDeltaTime:固定增量时间,它是相对于游戏中的时间而言的,会受到timeScale影响
maximumDeltaTime:最大增量时间,固定帧的一帧能获得的最大时间,建议保持在0.1秒~0.33秒之间
timeScale:游戏时间的缩放,可以用来减慢运动效果。timeScale为1时,游戏时间和实时时间一样;timeScale为0.5时,游戏时间为实时时间的一半;timeScale为0时,游戏基本暂停。
maximumParticleDeltaTime:每帧用于粒子更新的最大时间,如果帧花费的时间比这更长,那么粒子模拟将分解成每帧的多个步骤。

项目设置中的时间管理可以对上面这3个值进行修改。
captureFramesrate:采集帧速率,默认为0,整型,当为非零时,帧更新间隔为(1.0 / captureFramerate),可用于采集流畅的屏幕录像。
只读静态变量:
time:从游戏开始到现在所用的时间
fixedTime:受fixedDeltaTime影响,从游戏开始到现在所用的时间
unscaledTime:不受timeScale影响,从游戏开始到现在所用的时间
timeSinceLevelLoad:自关卡加载的时间,即从最后加载的关卡到现在所用的时间
realtimeSinceStartup:从游戏开始到现在的系统实时时间

deltaTime:完成最后一帧的时间
smoothDelateTime:平滑增量时间,取deltaTime的平均值
unscaledDelateTime:不受timeScale影响,完成最后一帧的时间
frameCount:帧数计数


Random类(产生随机数的类)

静态方法:
Range:范围随机,返回一个最小值和最大值之间的随机数,返回类型可为整型或浮点型;
静态变量:
seed:Random类中唯一的非只读变量,给随机数发生器设置种子,相同的种子能够生成相同的伪随机数。
rotation:返回一个随机旋转角度(四元数)
rotationUniform:返回一个随机均匀分布的旋转角度(四元数)
【Unity官方手册:Random类】

Mathf(数学类)

Mathf类属于结构体类型,只有静态属性和静态方法,不可以进行实例化。

静态属性:
Deg2Rad:从角度转化为弧度常量,1度 = (PI * 2) / 360 弧度 = 0.0174533弧度
Rad2Deg:从弧度转化为角度常量,1弧度 = 360 / (PI * 2) 度 = 57.29578 度
Infinity:正无穷大,在Unity中是一个正无穷大数值的表示,不代表任何具体数值

静态方法:
Ceil:进1取整
Round:接近取整,若数字末尾为.5,则返回接近的偶数
Floor:退1取整

Clamp:返回有限范围值,类似于Clamp01,不同在于Champ的取值范围为【0,1】且只有一个参数
ClosestPowerOfTwo:返回参数的2的某次幂的值,取较大值
DeltaAngle:角度差值,区间为(-180,180]

InverseLerp:计算两个值之间的Lerp参数,即value在from和to之间的比例值
Lerp:线性插值,用来返回一个从form到to范围的线性插值,返回值的计算方法为(to-from)*t+from,t的有效取值范围为【0,1】
LerpAngle:角度插值,类似于Lerp,主要用来对角度之间进行插值

MoveTowards:选择性插值,相对于Lerp,插值曲线是先快后慢
MoveTowardsAngle:角度的选择性插值,类似于MoveTowards,主要用于角度的旋转变换

SmoothDamp:模拟阻尼运动,返回模拟插值,物体越靠近目标,加速度越小
SmoothDampAngle:类似于SmoothDamp,主要用于模拟角度旋转的平滑阻尼运动

SmoothStep:平滑插值,先快后慢

PingPong:往复运动,让数值t在 0到length之间往返。t值永远不会大于length的值,也永远不会小于0
Repeat:循环运动,循环t值,从来不会比length大,并且从不会小于0,取值在0~length之间

以上是Unity中一些常用的Mathf类的变量和方法,更多的内容可以参看【Unity官方手册:Mathf类】

0 0
原创粉丝点击