输入控制
1.創(chuàng)建一個游戲工程, 命名為InputControl
2.在Project視圖中創(chuàng)建3個文件夾, Scene文件夾、Resources文件夾和Script文件夾
3.將當前場景保存為GameScene
4.創(chuàng)建ComputerInputControl游戲腳本
5.在Hierarchy視圖中創(chuàng)建一個空的GameObject, 命名為GameManager,并把ComputerInputControl綁定在該對象上
6.玩家點擊鼠標左鍵開火、按住鍵盤W鍵前進等都屬于輸入控制。輸入控制是游戲開發(fā)中非常重要的一個環(huán)節(jié)。
7.計算機輸入
(1).計算機設(shè)備的輸入指的是僅對應(yīng)鍵盤和鼠標的輸入檢測。一般單項檢查分為3類:按下、按住和抬起。
(2).KeyCode是由Event.keyCode返回的, 用于鍵盤事件的原始鍵碼。
2.在Project視圖中創(chuàng)建3個文件夾, Scene文件夾、Resources文件夾和Script文件夾
3.將當前場景保存為GameScene
4.創(chuàng)建ComputerInputControl游戲腳本
5.在Hierarchy視圖中創(chuàng)建一個空的GameObject, 命名為GameManager,并把ComputerInputControl綁定在該對象上
6.玩家點擊鼠標左鍵開火、按住鍵盤W鍵前進等都屬于輸入控制。輸入控制是游戲開發(fā)中非常重要的一個環(huán)節(jié)。
7.計算機輸入
(1).計算機設(shè)備的輸入指的是僅對應(yīng)鍵盤和鼠標的輸入檢測。一般單項檢查分為3類:按下、按住和抬起。
(2).KeyCode是由Event.keyCode返回的, 用于鍵盤事件的原始鍵碼。
(3).代碼清單
using UnityEngine;public class ComputerInputControl : MonoBehaviour {void Update () {if(Input.GetKeyDown(KeyCode.A)){Debug.Log ("按下鍵盤A鍵");}if(Input.GetKey(KeyCode.A)){Debug.Log ("按住鍵盤A鍵");}if(Input.GetKeyUp(KeyCode.A)){Debug.Log ("抬起鍵盤A鍵");}if(Input.GetKeyDown(KeyCode.Space)){Debug.Log ("按下鍵盤空格鍵");}if(Input.GetKey(KeyCode.Space)){Debug.Log ("按住鍵盤空格鍵");}if(Input.GetKeyUp(KeyCode.Space)){Debug.Log ("抬起鍵盤空格鍵");}if(Input.GetMouseButtonDown(0)){Debug.Log ("按下鼠標左鍵");}if(Input.GetMouseButton(0)){Debug.Log ("按住鼠標左鍵");}if(Input.GetMouseButtonUp(0)){Debug.Log ("抬起鼠標左鍵");}if(Input.GetMouseButtonDown(1)){Debug.Log ("按下鼠標右鍵");}if(Input.GetMouseButton(1)){Debug.Log ("按住鼠標右鍵");}if(Input.GetMouseButtonUp(1)){Debug.Log ("抬起鼠標右鍵");}if(Input.GetMouseButtonDown(2)){Debug.Log ("按下鼠標滾輪鍵");}if(Input.GetMouseButton(2)){Debug.Log ("按住鼠標滾輪鍵");}if(Input.GetMouseButtonUp(2)){Debug.Log ("抬起鼠標滾輪鍵");}} }8.自定義輸入
(1).鍵盤鼠標輸入檢測十分局限, 一般僅用于計算機等設(shè)備。自定義輸入可以設(shè)置輸入類型名稱、輸入設(shè)備類型、輸入鍵位等參數(shù), 從而方便的解決了計算機與家用機的輸入兼容。
(2).微軟的xbox
(3).任天堂游戲公司的switch
(4).輸入設(shè)置界面: 菜單欄 -> Edit -> Project Settings -> Input打開輸入設(shè)置界面
?
(5).展開Horizontal輸入項, 我們發(fā)現(xiàn)有2個Horizontal項, 這是因為鍵盤鼠標是單獨的一套鍵,而手柄則是另一套。
?
(6).在Hierarchy視圖中的GameManame游戲?qū)ο笙?新建一個Cube立方體。
(7).新建一個HorizontalInput.cs腳本, 并綁定到Cube上。
(8).代碼清單
using UnityEngine;public class HorizontalInput : MonoBehaviour {void Update () {float horizontalValue = Input.GetAxis ("Horizontal");if(horizontalValue != 0){transform.position += new Vector3 (horizontalValue*Time.deltaTime, 0, 0);}float verticalValue = Input.GetAxis ("Vertical");if(verticalValue != 0){transform.position += new Vector3 (0, verticalValue*Time.deltaTime, 0);}} } 《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)