Input System基本概念

Input System 讓使用者可以透過設備(device),觸控(touch)或手勢(gestures)控制你的App。
若有跨平台開發的需求,或希望提供使用者可自行設定輸入的選項,可考慮使用 Input System。
目前Input System是Unity較新的輸入系統,需要透過Project Manager去安裝。

概念 描述
User 就是使用你App的使用者,透過輸入裝置或觸控裝置提供輸入
Input Device 在輸入的環境(context of input)中,指的是實體裝置,例如:鍵盤(keyboard),遊戲手把(gamepad),滑鼠(mouse)或是觸控螢幕等(touchscreen)
Control 指的是輸入裝置的個別部件,各自會將自己的值發送到Unity中。例如:遊戲手把(gamepad)的control包含了多個按鈕(buttons),搖桿(sticks),板機(triggers)等;滑鼠的control包含了在底部的兩個X與Y感應器(sensors)與在上面的各種按鈕與滑鼠滾輪等。
Action Action是一個高層次的概念,用來描述在你的App中使用者可能想做的輸入動作,例如:在遊戲中跳躍(Jump),在畫面上選擇(Select),也就是說是使用者可以在你App中做出的輸入動作。Action一般會有一個概念名稱,你可以依據你專案使用合適的Action名稱,通常是一個動詞(verbs),例如RunJumpCrouchUseStartQuit
Action Map Action Maps讓你可以將Action組織起來,你可以同時啟用或停用在一個Action Map中的action,對組織相關的Action非常有用,例如你可能會想要一個Action Map在裡面Action都與控制玩家相關,而另外一個都與UI互動相關。
Binding 一種將Action與特定控制裝置(specific device control)之間綁定的概念。例如:Move可能會與鍵盤上的WSAD與方向鍵(arrow keys)綁定,或者是遊戲手把(joypad)上的左側搖桿(left stick)綁定,以及VR控制器上的主要2D軸綁定。可以多個綁定,表示你的App可以接受框平台的輸入
Your Action Code 根據Action設定去操作的腳本(script)。在程式碼中,你可以透過Action的參考(reference)來讀取目前action的值或是狀態(此也稱為polling),也可以設定callback來為這些action添加自己的方法
ActionAsset 是一個儲存了Action Maps與Bindings設定的asset type,你可以在專案中指定一個Action Asset為專案範圍的動作(project-wide actions) 讓你可以透過這樣可以通過使用InputSystem.actions在程式碼中輕鬆參考這些動作

下一篇:安裝Input System

Reference: https://docs.unity3d.com/Packages/com.unity.inputsystem@1.8/manual/index.html
https://docs.unity3d.com/Packages/com.unity.inputsystem@1.8/manual/Concepts.html

評論