[Unity脚本基础] 代码解析
来源:互联网 发布:淘宝哪个漫步者真的 编辑:程序博客网 时间:2024/06/05 09:11
Time 时间体系
变量
time: 从游戏开始到现在所用的时间
timeSinceLevelLoad:这是以秒计算到最后的关卡已经加载完的时间
deltaTime:以秒计算,完成最后一帧的时间
fixedTime:这是以秒计自游戏开始的时间
fixedDeltaTime:以秒计间隔,在物理和其他固定帧速率进行更新
maximumDeltaTime:一帧能获得的最大时间,物理和其他固定帧率更新
smoothDeltaTime:一个平滑淡出 Time.deltaTime
timeScale:传递时间的缩放,这可以用于减慢运动效果
frameCount:已经传递的帧的总数
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
Mathf 数学运算:曲线变换
以下这些方法都是:给出一个 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():随着时间的推移逐渐改变一个给定的角度到期望的角度
参数:同上
Mathf 数学运算:其他函数
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
0 0
- [Unity脚本基础] 代码解析
- unity基础开发----常用代码Unity中解析XML
- unity脚本基础
- Unity脚本基础
- Unity基础 - 脚本入门
- unity脚本基础笔记
- Unity脚本基础
- Unity第一人称控制脚本解析
- Unity基础|Unity脚本创建与执行
- [Unity基础]unity脚本的生命周期
- Unity 基础 - 脚本的生命周期
- unity C#脚本开发基础
- 零基础Unity3D游戏开发系列 第三章:Unity脚本编程(十八)代码执行顺序
- Unity学习之基础脚本代码抽象类和继承总结
- Unity 基础 XML文件解析
- [WebKit] JavaScriptCore解析--基础篇(三)从脚本代码到JIT编译的代码实现
- Unity第一人称控制器脚本解析-FPSCharacterController( FirstPersonController)
- Unity基础包 FirstPersonController 脚本研究
- MFC调用其它DLL的资源中包含自定义控件,显示不正常的解决方法
- 一个隐马尔科夫模型的应用实例:中文分词
- texture packer导出的图片程序中拼接有黑边的问题
- 私有pod
- js中的extend
- [Unity脚本基础] 代码解析
- YOLO 安装过程
- 八大排序的代码实现
- html编码常见的有utf-8和gb2312编码等,应该如何判断选择?
- hdu5917——Wrestling Match(二分图染色)
- CentOS 7将网卡名称eno16777736改为eth0
- 解决:mysql导出SQL文件
- 史上最全常用正则表达式
- 基础简单的数据结构-C语言-二叉树链表构造