1. 程式人生 > >unity3d學習筆記1——輸入控制Input

unity3d學習筆記1——輸入控制Input

在基本認識了unity相關東西后,深入瞭解下它的輸入是非常有必要的,包括滑鼠,鍵盤,移動裝置觸控等互動。

unity3d中輸入由一個InputManager管理,在編輯器中有一個InputManager的設定介面提供了一些常規的設定



Axes包含了15個控制軸,每個控制軸都可以用來控制遊戲的一個輸入

拿其中的一個軸進行舉例


看下這個名為Horizontal的控制軸


裡面有軸的名字:Name

正向輸入控制按鈕描述:Descriptive Name

負向輸入控制制按鈕描述:Descriptive Negative Name

負向輸入控制按鈕:Negative Button

正向輸入控制按鈕:Positive Button

第二個負向輸入控制按鈕:Alt Negative Button

第二個正向輸入控制按鈕:Alt Positive Button

重置為0的引數係數:Gravity(值越大,重置為0的時間越短)

判定為無輸入的上限值:Dead(其意思就是絕對值小於這個值,就判定為0)

輸出從0到最大的引數係數:Sensitivity (與Gravity是相反的操作,就是從0到輸入最大值的時間係數,該值越大,那麼時間越短)

Snap 官方描述是當正按鈕按下時,如果某個時間負按鈕按下,輸入會立即為0,但是本人測試無效,不知道什麼原因

Invert 是正負控制反向

Type 是輸入控制型別

Axis 輸入裝置型別

Joy Num,哪個輸入軸生效,預設所有輸入軸生效

上面都是unity編輯器中InputManager 中的控制,下面是實際編碼程式碼中怎麼運用:

在編碼時,我們需要知道這個類,Input

這是獲取輸入的介面類

這個類有很多靜態方法和靜態屬性

我們先看下靜態屬性

下面是所有的靜態方法
獲取上一幀的加速事件(GetAccelerationEvent);
根據編輯器InputManager 中設定的控制軸的名字來獲取該控制軸的輸入值
同上,只不過是沒有經過平滑處理的值。
獲取按鈕是否被按住(例如控制軸Fire1, 這裡的按鈕名字,其實是InputManager介面中Axes虛擬軸的名字)
獲取按鈕是否被按下(例如控制軸Fire1)
獲取按鈕是否被放開(例如控制軸Fire1)
獲取鍵盤某個鍵是否被按住
獲取鍵盤某個鍵是否被放開
獲取滑鼠按鍵是否被按住(這裡的滑鼠按鍵名只有(0,1,2))
返回當前觸點狀態(索引從0開始)可以根據Input.touchCount來獲取當前觸點最大索引
將一幀內,該程式碼執行後,所有的輸入值都將為0