日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Unity输入控制

發(fā)布時(shí)間:2024/3/12 编程问答 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Unity输入控制 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Unity 中,使用 Input 類獲取用戶輸入,記錄下常用的函數(shù)及注意事項(xiàng)。

鍵盤輸入:

Input.GetKeyDown(KeyCode key) 獲取指定按鍵被按下的事件,直到松開按鍵再次按下,才能獲取第二次輸入。其中參數(shù) key 與物理按鍵對(duì)應(yīng),例如KeyCode.A 代表鍵盤上的 ‘A’ 鍵,KeyCode 與 物理按鍵的映射是無法改變的。

? ? ? Input.GetKeyUp(KeyCode key) 與?Input.GetKeyDown(KeyCode key) 同理,是在按鍵松開的時(shí)候獲得輸入。

? ? ? Input.GetKey(KeyCode key) ?在 key 被持續(xù)按住時(shí),調(diào)用此方法。


鼠標(biāo)輸入:

Input.GetMouseButtonDown(int button)

Input.GetMouseButtonUp(int button)

? ? ? ?Input.GetMouseButton(int button)

鼠標(biāo)輸入與鍵盤輸入類似,參數(shù) 0 代表鼠標(biāo)左鍵、參數(shù) 1 代表鼠標(biāo)右鍵、參數(shù) 2 代表鼠標(biāo)中鍵。

? ? ??

自定義輸入:

? ? ? Unity 允許創(chuàng)建自定義的虛擬軸,虛擬按鍵是虛擬軸的特殊情況,在InputManager 中統(tǒng)一視為虛擬軸。 選擇菜單欄中的 Edit->Project Settings->Input ?可以打開InputManager,如圖:

? ? ??

? ? ? ??

Unity 默認(rèn)創(chuàng)建了18個(gè)虛擬軸,每個(gè)軸的屬性如圖:

? ? ??


Name 是虛擬軸的名稱,通過 Name 在腳本中訪問虛擬軸,可以為不同的設(shè)備指定同名的虛擬軸,輸入來自于用戶正在使用的那個(gè)設(shè)備,在寫腳本時(shí),無需考慮輸入來自于哪里。

Negative Button ? ? ? ?軸的負(fù)按鍵對(duì)應(yīng)的物理按鍵。

Positive Button ? ? ? ? ?軸的正按鍵對(duì)應(yīng)的物理按鍵。

Alt Negative Button ? 備選負(fù)按鍵。

Alt Positive Button ? ? 備選正按鍵。

Gravity ? ? ?? ? 當(dāng)鍵松開后,軸復(fù)位的速度。 越大表示越快復(fù)位。

Dead ? ? ? ? ? ? ? ? ? ? ? ? ?死亡區(qū)間,在此區(qū)間的值都會(huì)被認(rèn)為是復(fù)位值,即0。 個(gè)人理解是絕對(duì)值在此區(qū)間。

Sensitivity ? ? ? ? ? ? ? ? ?靈敏度,對(duì)按鍵來說是響應(yīng)速度,與 Gravity 相對(duì),對(duì)鼠標(biāo)來說是單位時(shí)間內(nèi)移動(dòng)距離的影響

Snap ? ? ? ? ? ? ? ? ? ? ? ? ?選中后,當(dāng)按下反方向鍵后,值立刻復(fù)位;如果不選中,原方向值不會(huì)立刻歸0,會(huì)有一個(gè)減速到0的過程。

Invert ? ? ? ? ? ? ? ? ? ? ? ? 選中后,正負(fù)按鍵顛倒。

Axis ? ? ? ? ? ? ? ? ? ? ? ? ? 這個(gè)虛擬軸所映射的設(shè)備輸入軸(搖桿、鼠標(biāo)、手柄等)。

?在腳本中通過以下方法獲取虛擬按鍵輸入:

Input.GetButtonUp(string buttonName)

? ? ? ? Input.GetButtonDown(string buttonName)

Input.GetButton(string buttonName)


獲取軸輸入:

Input.GetAxis(string axisName) ? ?輸入軸的值一般在 -1 到 1之間,鼠標(biāo)輸入表示的是移動(dòng)距離,所以會(huì)大于這個(gè)范圍。使用虛擬軸的好處是,游戲發(fā)布后,用戶可以自定義鍵位設(shè)置。

Note: 官方文檔明確說明,GetXXXUp、GetXXXDown 這類輸入一定要放在 Update() 中,而不是 FixedUpdate() 中, 原因是在每一幀會(huì)將輸入重置,意思就是說在 Update() 中一定能檢測到輸入,并將輸入重置。因此如果把此類 Input 方法放在 FixedUpdate() 中,有可能造成漏掉輸入的情況,同時(shí)也有可能造成一次輸入檢測出多次。 而 GetKey()、GetButton()、GetMouseButton()、GetAxis() 則沒有明確說明,由于是連續(xù)檢測,應(yīng)該也可以放在 FixedUpdate() 。


總結(jié)

以上是生活随笔為你收集整理的Unity输入控制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。