Unity Input System 01 快速上手

Input System

翻譯, 這是原文1
原文2
並沒有經過官方同意(沒有問),不同意還不讓發了???

安裝

可以同時啓用舊的InputManage和新的InputSystem, 也可以只用一個. 在 Edit > Project Settings > Player 中設置(每個平臺都不同, 在下面中間的位置)

直接獲取設備的輸入

最簡單的, 就是直接讀取輸入設備的當前狀態(按了哪個鍵之類的)。例如,以下代碼獲取玩家最後使用的手柄,並讀取其當前狀態

using UnityEngine;
using UnityEngine.InputSystem;

public class MyPlayerScript : MonoBehaviour
{
    void FixedUpdate()
    {
        var gamepad = Gamepad.current;
        if (gamepad == null)
            return; // No gamepad connected.

        if (gamepad.rightTrigger.wasPressedThisFrame)
        {
            // 'Use' code here
        }

        Vector2 move = gamepad.leftStick.ReadValue();
        // 'Move' code here
    }
}

同樣的方法也適用於其他設備類型,如Keyboard.currentMouse.current

從輸入動作(Input Action)獲取輸入

分爲3步:

  1. 添加PlayerInput組件
  2. 創建動作
  3. 編寫腳本,設置動作響應

添加PlayerInput組件

直接從輸入設備獲取輸入既快捷又方便,但是每種類型的設備都需要不同的代碼。這也使得以後若想改變一種觸發方式(原來用鼠標,現在用手柄),來觸發遊戲中特定的事件,變得更加困難。
您可以使用動作作爲設備和它們所觸發的遊戲內響應之間的媒介。最簡單的方法是使用PlayerInput組件。
添加PlayerInput組件

創建輸入動作

每個PlayerInput組件表示遊戲中的一個玩家。爲了接收輸入,該組件必須連接到一組InputAction。創建一組新動作的最快方法是單擊組件上的Create Actions按鈕。這將創建一個自動配置好的資產:默認InputAction映射、InputAction、輸入綁定。
創建Action
這將在您的項目中創建一個新的 .inputaction 資產,將其連接到PlayerInput組件,並打開.inputactions文件的編輯器窗口。
InputAction編輯窗口
您可以編輯默認設置以適應項目的需要。有關如何使用此窗口的說明,請參閱動作編輯器

編寫腳本,設置動作響應

一旦組件有了一些Action,您必須爲每個Action設置一個響應。
設置響應
有關選項的詳細信息,請參見這裏。上面的截圖使用了Invoke Unity事件,它使用UnityEvent的方式(和Unity UI一樣)。Unity爲鏈接到組件的每個動作顯示一個事件。您可以爲每個事件綁定方法。
爲InputAction綁定回調函數
每個方法都帶有一個InputAction.CallbackContext參數,該參數可訪問觸發了Action的Control和Action的值。 有關更多信息,請參見有關Action回調的文檔

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