unity基础编程(一)

以此来记录系统学习使用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"

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值