Unity_Input類

Unity的外部輸入資源有鍵盤、鼠標、移動設備的觸摸、遊戲杆等很多種類。Input類就是用來管理這些的輸入值。
Input類查看
可在U3D界面打開進行查看編輯


參數解釋
軸(Axes):設置當前項目中的所有輸入軸:size爲軸的數量。0,1…元素可以對每個軸進行修改。
名稱(Name):軸的名稱,用於遊戲加載界面和腳本中。
描述名稱(Descriptive Name):遊戲加載界面中,軸的正向按鍵的詳細描述。
描述負名稱(Descriptive Negative Name):遊戲加載界面中,軸的反向按鍵的詳細描述。
負按鈕(Negative Button):該按鈕用於在負方向移動軸 (如:左)
正按鈕(Positive Button):該按鈕用於在正方向移動軸 (如:右)
備選負按鈕(Alt Negative Button):備選按鈕用於在負方向移動軸(如:a)
備選正按鈕(Alt Positive Button):備選按鈕用於在正方向移動軸 (如:d)
重力(Gravity):輸入復位的速度,僅用於類型爲 鍵/鼠標 的按鍵。
死亡(Dead):模擬的死區大小, 任何小於該值的輸入值(不論正負值)都會被視爲0,用於搖桿。
靈敏度(Sensitivity):在單位每秒速度,軸將移向目標值。對於鍵盤輸入,該值越大則響應時間越
快,該值越小則越平滑。對於鼠標輸入,設置該值會對鼠標的實際移動距離
按比例縮放。
捕捉(Snap):如果啓用該設置,當軸收到反向的輸入信號時,軸的數值會立即置爲0,僅用於鍵/鼠
標 輸入。
反向(Invert):啓用該參數可以讓正向按鈕發送負值,反向按鈕發送正值。
類型(Type):控制軸的輸入設備類型。所有的按鈕輸入都應設置爲 鍵/鼠標 (Key / Mouse) 類型,
對於鼠標移動和滾輪應設爲 鼠標移動(Mouse Movement)。搖桿設爲搖桿軸 (Joystick
Axis),用戶移動窗口設爲窗口移動 (Window Movement)。
軸(Axis):連接設備的軸將控制這個軸 。
操作杆(Joy Num):設置使用哪個搖桿。默認是接收所有搖桿的輸入。僅用於輸入軸和非按鍵。
U3D的按鍵系統
Mouse0鼠標左鍵
Mouse1鼠標右鍵
Mouse2鼠標中鍵

GetButtonDown表示鼠標按下才會執行
GetButton表示按住鼠標不放就一直執行
GetButtonUp表示按下鼠標放開後纔會執行
GetKey..... 就是對應鍵盤上的控制
代碼中使用
在腳本中,可以通過 Input.GetAxis("組合鍵名") 函數獲取之前設置好的組合鍵值。
此函數返回值是 -1.0f~1.0f ,通常是在遊戲對象做平滑移動時使用。

函數 Input.GetAxisRaw("組合鍵名") 返回的是 -1、1、0 三個枚舉值,主要是用於對鍵盤控制即時性要求較高的情況。

簡單角色控制
角色移動
原理是調整Transform組件的position屬性實現移動。Unity使用的是左手座標系,+Z是前進,-Z是後退。
h = Input.GetAxis("Horizontal");
 v = Input.GetAxis("Vertical");
//向量計算得到一個運動的方向向量
Vector3 moveDir = (Vector3.forward * v) + (Vector3.right * h);
 //Translate( 移動方向 * 速度 * 位移值 * Time.deltaTime, 基礎座標)
 tr.Translate(moveDir.normalized * moveSpeed * Time.deltaTime, Space.Self);
注意:在Update函數裏使用Transfrom組件使物體移動的邏輯必須乘上 Time.deltaTime,這樣能保證移動速度不受幀率的影響。
角色旋轉
使遊戲對象以Y軸爲基準進行旋轉
//以Vector3.up 軸爲基準,以rotSpeed速度旋轉
tr.Rotate(Vector3.up * Time.deltaTime * rotSpeed * Input.GetAxis("Mouse X"));



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章