unity3d

向量的运算
用向量定义网格和方向
0:向量有长度属性(大小)(magnitude(大小))
1:向量用来表示与原点的相对位置
2:向量有两个常用的函数:点积与叉积
点积(Dot Product)
Vector A(x,y,z)
Vector B(x,y,z)
Dot Product = (Ax*Bx)+(Ay*By)+(Az*Bz)
点积通过两个向量计算出一个标量,是一个单一值
通过点积可以知道两个向量之间的关系
点积为零则两个向量垂直
叉积的结果不是一个单一标量值,而是一个向量,这个向量垂直于之前的两个向量,通过左手坐标系手势可以判断出叉积向量的方向
A(大拇指)^B(食指) = C(中指)
叉积在游戏中可以用于判断扭矩,从而转动坦克炮台,首先获取炮台当前朝向向量,和炮台应该朝向的向量,通过他们的叉积可以计算出炮台的扭矩


Awake和Start会在脚本加载后自动调用,Awake会先调用,即使脚本未启动,可以用来设置脚本之间的引用和初始化
Update每帧都会调用,非物理对象的移动,计时器,输入检测,通常都放在Update函数中
FixedUpdate函数:根据正常的时间轴调用,调用时间相同,通常用于移动物理对象
组件的启用和禁用:使用enabled
对象的启用和禁用:gameObject.setActive(false)
如果要检测对象在场景或"hierarchy(层次结构)"中是否被启用可以使用activeSelf和activeHierarchy


Translate(平移)和Rotate用来改变对象位置和旋转的函数,使用的坐标是本地坐标而不是世界坐标
new Vector3(0,0,1)*Time.DeltaTime;移动的速度以每秒为单位而不是每帧
如果要移动带有碰撞器的对象,某些需要有物理交互的对象时就不要使用Translate和Rotate,而是要使用专门移动物理对象的函数


LookAt函数可以让对象的正前方,朝向设定的坐标方向




线性插值:Mathf.Lerp(插值初始值,插值的结束值,插值的比例)
float res = Mathf.Lerp(3,5,0.5)结果为4 = (3+5)*0.5
Lerp函数还包括Color.Lerp()和Vector3.Lerp()
Lerp可以让一个值随着时间平滑进行变化
float res = Mathf.Lerp(res,15,0.5)
让一个值随着时间平滑进行变化最好使用SmoothDamp函数


Destory函数可以在游戏运行时,移除物体或组件,Destory函数用来销毁对象或组件


Input类:在Unity中通过GetKey()和GetButton()函数来获取用户在键盘或者摇杆的输入状态在两个函数的区别,GetKey要调用预先设置好的KeyCode,这个函数用于检测键盘输入,GetButton时自定义按键,用来检测按钮是否被按下并返回True或者False
当按键没有被按下时:所有的GetButton返回False
GetButtonDown:False
GetButton:False
GetButtonUp:false
当按键按下的第一帧会返回True
GetButtonDown:True
GetButton:True
GetButtonUp:false
按住不放
GetButtonDown:Flase
GetButton:True
GetButtonUp:false
松开按钮后的第一帧
GetButtonDown:Flase
GetButton:Flase
GetButtonUp:True
最后所有按钮都为False
GetButtonDown:Flase
GetButton:Flase
GetButtonUp:Flase


Input类的GetAxis()函数:返回值为浮点数,范围在-1和1之间(重置坐标设置)
Input.GetAxis()与Input.GetKey()和Input.Button()原理类似,但有根本区别,Input.GetKey()和Input.Button()返回布尔值,表示按钮是否被按下,而GetAxis返回浮点数,范围在1和-1之间,如果想在Input Manager中重置坐标设置,按键只需要设置"Postive Button",而坐标轴需要设置"Positive&NegativeButton","Gravity","Seneitivity(灵敏度)","Dead","Snap"
Gravity:表示按钮松开后,返回值归零的速度,Gravity越大,归零速度越快
Sensitivity:表示按下按钮后,返回值到达1或者-1的速度,值越大,速度越快,反之则越平滑
如果我们使用摇杆来控制坐标轴,我们不需要让他的返回值过小,可以设置Dead,Dead值越大,摇杆也需要移动更大距离才能获取返回值
勾选Snap选项当正反按钮同时按下时会返回0
如果想要获取水平和垂直方向的输入,只需加入代码Input.GetAxis("Horizontal")还有Input.GetAxis("Vertical")
你可以使用Input.GetAxisRaw("Horizonta l")只返回整数值,不需要设置"Gravity","Seneitivity"
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值