以此来记录系统学习使用unity的知识方便以后复习使用,如果能得到监督和指导,不胜感激!
unity常用使用快捷键
(1) Q—抓手工具、W—移动工具、E—旋转工具、R—缩放工具、T—横切面工具(就在键盘一排试一试就会很清楚了)
(2) Z— 轴点模式切换(Pivot 与 Center)、X—轴点旋转切换(Global 与 Local)
(3) 在场景中点击鼠标中键,可以临时切换到抓手工具
(4) 在场景按住鼠标右键可进行视角旋转,鼠标右键 + W/S/A/D (向上/下/左/右 快速浏览视图)
(5) Alt + 鼠标左键 视角对选中物体环绕
(6) Alt + 鼠标右键 视角拉进/拉远
(7) Ctrl + P播放 / 运行游戏,对游戏运行进行预览
(8)Ctrl + Shift + P暂停 / 中断游戏预览,在游戏暂停时,再次按下组合键可回到游戏运行状态
(9)Ctrl + Alt + P逐帧播放,单帧进行预览
(10)Ctrl + Shift + B进行发布设置
(11)Ctrl + 1切换到Scene视图
(12)Ctrl + 2切换到Game视图
(13)Ctrl + R 刷新(重新编译)
(14)Ctrl+ Shift + F 将选中的摄像机与Scene视图对齐 (align with view)
(15)Ctrl + Alt + F 将选中对象移动到Scene视图的中心 (move to view)
(16)Ctrl + Shift + N 创建空对象
Vector3向量
- Vector3.back=(0,0,-1)
- Vector3.forward=(0,0,1)
- Vector3.left=(-1,0,0)
- Vector3.right=(1,0,0)
- Vector3.down=(0,-1,0)
- Vector3.up=(0,1,0)
- Vector3.zero=(0,0,0)
- Vector3.one=(1,1,1)
- Vector3.Angle() :向量之间的夹角,返回两个向量之间较小的角度(在旋转计算中常常用到)
- Vector3.Cross() :叉积,返回垂直于a,b,两个向量所在平面的另一个向量,长度|c|=|a||b|sin<a,b>
- Vector3.Dot():点积,a·b=|a|·|b|cos<a,b>(是一个标量,只有大小,没有方向)
- Vector3.Distance():求两点之间的距离,(范围判断中使用)
- Vector3.Lerp() :插值运算,一般用于平滑处理,比如摄像机的缓慢移动、导弹的追踪等
- Vector3.MoveTowards():沿着目标移动,
- Vector3.Normalize():向量单位化,方向一致,大小为单位1
- Vector3.Project():向量投影,求一个向量在另一个向量方向上的投影
- Vector3.Slerp():球形插值
- 在开发中transform下的position、scale、rotation等都可以通过设置Vector3的值来改变相应的位置、大小等。
Time.deltaTime
一个游戏的FPS(游戏运行时每秒所运行的帧数)总是在变化的,FPS会因为电脑配置、场景变化或者游戏画面质量的设置而改变,所以引入时间增量Time.deltaTime
update 是每帧执行一次
Time.deltaTime每帧执行时间
比如现在希望小车的速度是10米/s那么可以在每帧Update里面Time.deltaTime*10,
那么实际上在游戏运行中:1秒=FPS帧*Time.deltaTime(每帧时间)
Translate方法
Translate 方法是 transform 类下的一个公共方法。一般可以用于物体的位移。
transform.Translate(Vector3 translate , Space relativeTo=Space.Self);
- 第一个参数表示位移多少,一般用移动方向×速度 ×时间来表示
- 第二个参数表示相对于哪个坐标系进行移动。如果没有传第二个参数,默认是相对于自己的坐标系。
Rotate方法
Translate 方法是 transform 类下的一个公共方法。一般可以用于物体的旋转。
transform.Rotate(float xAngle, float yAngle, float zAngle);
- Rotate表示旋转,三个参数分别代表绕x,y,z 轴,每帧旋转的角度,数值越大,转动越快
transform.Rotate(Vector3 .up * speed);
- 参数是方向*速度
LateUpdate
有时候在Update里面,相机和小车的位置移动同时发生,有时相机先有时小车先,会导致相机的成像是抖动的,LateUpdate会发生在Update之后,那么小车先走,相机随后,就可以让相机成像非常平滑。
Input.GetAxis和Input.GetAxisRawRaw
input.GetAxis()的返回值是[-1, 1],拥有平滑过渡功能
input.GetAxisRaw()的返回值是{-1,0,1}
下面以GetAxis()为例子
- float x= Input.GetAxis("Horizontal");//对应键盘上的A键和D键 或←键和→键
- float z = Input.GetAxis("Vertical"); //对应键盘上的W键和S键 或↑键和↓键
- float h = Input.GetAxis("Mouse X"); //对应X方向上鼠标的移动,在移动设备上也可以这样
- float v = Input.GetAxis("Mouse Y"); //对应Y方向上鼠标的移动,在移动设备上也可以这样
- float m = Input.GetAxis("Fire1"); //对应鼠标左键或left+Ctrl
- float n = Input.GetAxis("Fire2"); //对应鼠标右键或left+Alt
- float k = Input.GetAxis("Fire3"); //对应鼠标中键或left+shift
( )里面的内容,可以直接查看edit->input manage->"name"