我几乎历来不用这个东西,可是这个东西总是在我面前,弄得我闹心,今天就来好好解决它。html
1.从Edit-ProjectSetting->Input打开设置界面api
2.打开这个界面,咱们发现,竟然有两个Horizontal,咱们就顺着这个问题,对比一下二者的区别编码
这是第一个spa
这是第二个3d
能够发现,有几个命名为xxxButton的按钮不同,另外还有一个就是Type不同htm
根据unity的官方http://docs.unity3d.com/Manual/ConventionalGameInput.htmlblog
这个type是用来表示输入的类型的,可是没有一一的解释,根据他的三个下拉选项,咱们作个估计get
Key or Mouse Button Key 指按键或者是鼠标按键(就是鼠标的左右键),这个key应该怎么理解,抱着较真的态度,it
我就估计一下,就是KeyCode这个枚举里的全部类型io
也就是说,除了键盘以外,还能够包含鼠标。除此以外,不少人会有一个疑惑,
就是left right 这个东西怎么写,
unity好像没有给出个具体的清单
因此我也是估计的,你就照着KeyCode里面写法去写,而后改为小写,再加上空格,估计就行。
Mouse Movement 鼠标的移动
Joystick Axis 摇杆
这样,咱们基本能理解这个type的含义了,就是指你的输入来源,是按键,鼠标or摇杆?
与输入来源Type相对应,就是每一种Type之下,你的具体按键
好比图一,Type为Key or Mouse Button,这是按键,那么你就须要制定具体是哪一个按键,上图就是指定 左右箭头为第一选项,a和d为第二选项。
而图二,因为Type为Joystick Axis 摇杆,因此就不须要指定了。
获取轴的位移调用的api,一般是 float vert= Input.GetAxis( "Vertical" ); //吐槽一下,硬编码么
vert的范围为(-1,1),一般为负表示下,为正表示上
3.按钮类型的输入
按钮类型的输入,只要写Positive Button就能够了
bool Fire1= Input.GetButton( "Fire1" );
返回true表示按下,false表示没有按下
参考文章 http://blog.163.com/kingmax_res/blog/static/77282442201031712215956/
http://www.cnblogs.com/neverdie/p/Unity3D_GameObject_Component.html