untiy input system 4/5
5行為資產(chǎn)
行為資產(chǎn)有兩種實現(xiàn)方法,兩種方法都需要創(chuàng)建“input actions”元素。第一種方法是通過名稱(字符串)進行綁定。第二種為直接訪問封裝好的程序。創(chuàng)建“input actions”元素并且調整對應的行為資產(chǎn):

如圖所示名稱可以隨便起自己能看懂即可。框1為保存按鈕,需要先保存再寫對應的腳本???為行為對應的數(shù)據(jù)類型,在設置的時候要考慮清楚。本例為移動,移動是一個二維向量值所以使用“Vector2”類型。
ActionMaps一般用來保存多套按鍵行為邏輯并可以相互切換,比如在打開游戲的時候,歡迎界面為一套;進入第一關控制角色是另一套。Action為具體到每個行為,本例中為移動角色、跳躍與互動。
設置好輸入行為資產(chǎn)后保存,并新建“input_d.cs”腳本編寫行為對應的程序。使用名稱字符串方法代碼如下:
1、創(chuàng)建行為資產(chǎn)接口:必須為public,需要在資產(chǎn)中鏈接input actions。
2、創(chuàng)建行為:創(chuàng)建對應行為。
3、啟動、卸載:開啟、卸載輸入行為,函數(shù)名必須為如例所示。
4、綁定行為函數(shù):添加封裝好的行為對應的函數(shù)。
5、與行為資產(chǎn)對接:將2步驟創(chuàng)建的行為資產(chǎn)實例化。
6、行為函數(shù):行為對應的代碼,參數(shù)必須為本例所示類型,名稱隨便。但要與4步驟對應。
7、每幀執(zhí)行:每幀執(zhí)行一次讀取“移動”并打印數(shù)據(jù)。
本例用了兩個方法實現(xiàn),第一種為封裝函數(shù)的方法,該方法只有按下鍵盤才會觸發(fā),對應1、3、4、6步驟。第二種為每幀都運行的方法,對應1、2、3、5、7步驟??梢愿鶕?jù)實際情況進行選擇。
該工作流為讀取輸入的“shuruzichan”,通過“FindActionMap()”函數(shù)讀取“ActionMap”,最后通過“FindAction()”函數(shù)讀取行為。其中字符串對應本節(jié)剛開始創(chuàng)建的“input actions”資產(chǎn)中的名稱。
完成后保存、添加到資產(chǎn)。同時需要把本節(jié)剛開始創(chuàng)建的“input actions”資產(chǎn)拖入“shuruzichan”接口:

如與本文程序相同,則運行游戲后按下wasd按鍵并控制臺打印二維非零向量、按下空格打印“跳!”即為成功。(注:因為每幀執(zhí)行太快有可能“跳!”會被快速刷新肉眼看不到,建議單獨測試。)

訪問封裝好的程序這種方法需要創(chuàng)建“input actions”源代碼:

點擊對鉤后會創(chuàng)建一個同名的cs文件,無需修改。新建名為“input_e”腳本并輸入如下代碼:
大體相同的部分不再贅述,只需要注意第1步“kz_shuru”為剛剛創(chuàng)建的輸入行為資產(chǎn)文件;4步中的diyirencheng對應行為資產(chǎn)中的ActionMaps;tiao對應行為資產(chǎn)中的Actions。
如與本文程序相同,則運行游戲后按下wasd按鍵并控制臺打印二維非零向量、按下空格打印“跳!”即為成功。(注:因為每幀執(zhí)行太快有可能“跳!”會被快速刷新肉眼看不到,建議單獨測試。)