2016-11-04 19 views
-3

這是我裝備武器的系統,但我無法弄清楚如何檢查我是否被按下。統一c:如何判斷你作爲變量存儲的特定int鍵是否被按下

for (int i = 0; i < gunController.Guns.Length; i++) { 
      if (Input.GetKeyDown(i)) { 
       gunController.EquipWeapon(gunController.Guns[i]); 
      } 

     } 
+0

那麼當你使用這段代碼時會發生什麼? – UnholySheep

+0

什麼變量存儲密鑰?目前沒有存儲任何密鑰信息的變量 – Programmer

+1

我不使用Unity,但基於此 https://docs.unity3d.com/ScriptReference/Input.GetKeyDown.html 如果(Input(輸入)),您應該嘗試 .GetKeyDown(i.ToString())) – ChronosMOT

回答

0

按照Unity Docs (for Unity3D 5.4),的InputGetKeyDown函數有兩個重載:

  1. Input.GetKeyDown(string name)其中name是被按壓
  2. Input.GetKeyDown(KeyCode key)其中key爲鍵碼枚舉值的鍵的名稱鑰匙。

注意:第二次過載(Input.GetKeyDown(KeyCode key))是最佳做法。

基本上沒有過載,其具有int作爲參數。iint

您可以通過使用槍支及其各自的KeyCodestring s來製作數組/字典/列表(或其他)來解決此問題。

相關問題