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
- Unity基础.004数学基础类:Time、Random以及Mathf
- Time、Random、Mathf类
- 【Unity3d开发基础】Mathf中的数学运算
- Unity Mathf 数学运算
- unity Mathf 数学运算(C#)
- Unity Mathf 数学运算(C#)
- Unity Mathf 数学运算(C#)
- Unity Mathf 数学运算(C#)
- Unity Mathf 数学运算(C#)
- Unity Mathf 数学运算(C#)
- Unity Mathf 数学运算(C#)
- Unity Mathf 数学运算(C#)
- Unity Mathf 数学运算(C#)
- Unity Mathf 数学运算(C#)
- Unity Mathf 数学运算(C#)
- Unity Mathf 数学运算(C#)
- Unity Mathf 数学运算(C#)
- Unity Mathf 数学运算(C#)
- 指针和引用区别
- Spring4源码分析(ClassPathXmlApplicationContext)
- 设计模式之---状态模式
- 陈纪修老师《数学分析》 第03章:函数极限与连续函数 笔记
- 快速幂相关(template)
- Unity基础.004数学基础类:Time、Random以及Mathf
- solr搭建以及在Java中的使用【步骤】
- numpy中shape为(m,)的是行向量
- How to point cmake at specific directory for library?
- vue动画transition
- Ubuntu 挂载硬盘所用命令介绍
- 剑指offer——链表中倒数第k个结点
- 更新PIL库后遇到NotImplementedError: tostring() has been removed. Please call tobytes() instead
- 【京东商城首页实战2】导航条制作(1)