我几乎从来不用这个东西,但是这个东西老是在我面前,弄得我闹心,今天就来好好解决它。
1.从Edit-ProjectSetting->Input打开设置界面
2.打开这个界面,我们发现,居然有两个Horizontal,我们就顺着这个问题,对比一下两者的区别
这是第一个
这是第二个
可以发现,有几个命名为xxxButton的按钮不一样,另外还有一个就是Type不一样
根据unity的官方http://docs.unity3d.com/Manual/ConventionalGameInput.html
这个type是用来表示输入的类型的,但是没有一一的解释,根据他的三个下拉选项,我们做个估计
Key or Mouse Button Key 指按键或者是鼠标按键(就是鼠标的左右键),这个key应该怎么理解,抱着较真的态度,
我就估计一下,就是KeyCode这个枚举里的所有类型
也就是说,除了键盘之外,还可以包含鼠标。除此之外,很多人会有一个疑惑,
就是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