我幾乎歷來不用這個東西,可是這個東西總是在我面前,弄得我鬧心,今天就來好好解決它。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