2014-11-03 51 views
8

統一.getAxis(string name)似乎返回由用戶輸入(箭頭,鼠標或甚至操縱桿)產生的思想偏移。除了鼠標滾輪之外,返回值在<-1; 1>的區間內很方便。Unity Input.getAxis可以使用哪些參數?

從各種代碼示例中,我可以看到許多獲取輸入的方法,但似乎沒有實際的名稱/輸入列表。在我的情況下,我想啓用使用滾輪縮放或PgUpPgDn。車輪代碼看起來像這樣:

movement.y -= ResourceManager.ScrollSpeed * Input.GetAxis("Mouse ScrollWheel"); 

但是頁面下降和頁面向上?而且,一般來說,我怎麼知道在這個方法中使用哪個名字?

回答

9

Input.GetAxisInput.GetButton(以及GetButtonDownGetButtonUp)只返回在Input manager定義的虛擬輸入軸中的一個的狀態。

返回值不需要在[-1, 1]的範圍內。大多數表示絕對值的虛擬軸由-1和1之間的值表示。但是,有些軸會返回相對運動,如預定義的「MouseWheel」,「Mouse X」和「Mouse Y」。它們返回自上一幀以來軸的移動量。

MouseWheel有一些額外的「問題」。增量值取自OS。如果用戶將滾輪設置爲每「滾動單位」前進3行,則您將得到3的倍數的值。如果您設法快速旋轉滾輪,則可能會得到大於3或小於-3的值。

PageUp或PageDown沒有默認軸,但是如果您願意,您可以添加它們。但要小心,GetAxis將返回虛擬軸的狀態。所以當你按住正面按鈕時,只要你按下按鈕,你就會得到一個「1」。如果你想聽事件你必須使用GetButtonDown/GetButtonUp。

但是,如果你想檢查某個鍵,通常使用GetKeyDown/GetKeyUp需要一個KeyCode更簡單。

喜歡的東西:

if(Input.GetKeyDown(KeyCode.PageUp)) 
    movement.y -= 1; 
if(Input.GetKeyDown(KeyCode.PageDown)) 
    movement.y += 1; 

編輯
如果你想知道常用的鍵名,看一看該Conventional Game Input頁面。底部有一個最常用的鍵名列表,包括「上翻頁」和「下翻頁」。輸入管理器通常會拒絕錯誤的鍵名稱。所以如果你輸入一個,忽略輸入字段並且值保持不變,這是正確的。

如果您在按下按鈕時設置了一個正向按鈕,則根據「靈敏度」設置,虛擬軸將從「緩慢」增加到1。靈敏度就像一個加速因子。如果釋放該按鈕,將根據作爲減速因素的「重力」值將「緩慢」返回到0。

如果設置了正向和反向按鈕,當按下正向按鈕時,軸可以雙向移動到1,當按下負向按鈕時軸向下移動到-1。如果「snap」爲真,如果按下相反的按鈕而不是慢慢地回到0,然後開始反方向增長,它會立即回到0。

「死」值定義了死區。如果軸的值小於死角(或者小於-dead),則它將被視爲0.這對於實際模擬輸入設備非常重要,這些設備通常在其靜止位置附近存在一些抖動。

閱讀文檔時,應該清楚「反轉」,「類型」等其他屬性。

可以用defaule「Horizo​​ntal」和「Vertical」軸定義兩個同名的軸。具有相同名稱的軸被視爲一個軸。

我認爲這應該涵蓋大部分的輸入管理器的東西。

+0

不,我真的希望Unity爲我計算軸,所以按下按鈕的時間與縮放成正比。 – 2014-11-04 10:47:03

+0

哦,請您詳細說明如何用按鈕名稱定義新軸?我似乎無法知道要在「正/負按鈕」中輸入什麼內容。 – 2014-11-04 10:55:19

+0

@TomášZato:我已經添加了一些關於InputManager設置的更多信息。 – Bunny83 2014-11-04 13:26:06

相關問題