untiy input system 3/5
4嵌入腳本
嵌入腳本較靈活,支持單個行為對應多組按鍵。輸入行為可以是射擊等單個按鍵,也可以是移動等二維向量(四個按鍵)。單個行為也可以對應不同的設備,比如移動可以對應鍵盤wasd的同時也可以對應手柄。
新建一個新腳本名為“input_b”并鍵入如圖所示代碼:
1、創(chuàng)建輸入行為:必須是public,否則在資產(chǎn)中無法修改按鍵。
2、啟動、卸載:必須有這兩個函數(shù),這兩個函數(shù)的函數(shù)名是固定的,大小寫也不能寫錯。unity會直接執(zhí)行本函數(shù)啟動、卸載輸入行為。
5、啟動輸入行為:只有啟動了,按鍵才會生效。如果一開始定義了多個輸入行為,那么每個輸入行為都需要啟動。
4、判斷輸入行為的按鈕是否按下:Update()為每幀執(zhí)行,所以需要進行判斷。如果按鍵沒有按下則不執(zhí)行按下的操作。在本例中,如果不加這句判斷則會每幀都輸出二維向量,即使沒按下對應的按鍵。這時輸出的是(0,0)。
5、按下按鈕后執(zhí)行的程序:根據(jù)實際情況編寫即可,本例為打印一個二維向量到控制臺。
編寫完代碼后將其添加到資產(chǎn)上,本例為玩家資產(chǎn)。需要注意的是綁定的數(shù)據(jù)與代碼讀取的數(shù)據(jù)類型要相同,否則會報錯。即圖中2號框框出的類型與代碼28行讀取數(shù)值的數(shù)據(jù)類型相同。這里可以進行多套按鍵、多個設備綁定。

綁定按鍵時,可以按下“Listen”按鈕讓unity進行監(jiān)聽按鍵。操作方法為按下此按鈕、按下想綁定的按鍵即可得到按鍵名。如不知道按鍵名可以使用此方法尋找。

完成上述步驟后,如與本文程序相同,則運行游戲后按下wasd按鍵并控制臺打印二維非零向量即為成功。

本方法還可以通過委托的方式,把輸入行為的代碼封裝到函數(shù)中,創(chuàng)建新腳本命名為“input_c”,代碼如下:
1、初始化:需要向Performed字段插入行為函數(shù),本文為“yidong()”。
2、行為函數(shù):函數(shù)的參數(shù)必須為本例的類型,名稱可以隨便起。該參數(shù)對應資產(chǎn)設置中的按鍵映射返回信息,讀取的時候同樣需要與資產(chǎn)設置相同。
剩下的步驟與前文相同,如與本文程序相同,則運行游戲后按下wasd按鍵并控制臺打印二維非零向量即為成功。