一. Input類
Input類是Unity的輸入類,裏面封裝了與輸入相關的所有事件、屬性和方法,如常用的鍵盤輸入、鼠標輸入、觸摸輸入等。
二. 鍵盤事件
Input.GetKey(KeyCode.A) //按住鍵盤A鍵,返回爲true
Input.GetKeyDown(KeyCode.A) //按下鍵盤A鍵,返回爲true
Input.GetKeyUp(KeyCode.A) //擡起鍵盤A鍵,返回爲true
三. 軸輸入
在輸入設置中(dit → Project Settings → Input),系統預存了基於鍵盤操作的水平和垂直虛擬軸。
Input.GetAxis("Horizontal"); //按左、右方向鍵及A、D鍵,獲取水平軸的值 [-1,1]
Input.GetAxis("Vertical"); //按上、下方向鍵及W、S鍵,獲取垂直軸的值 [-1,1]
四. 鍵盤鍵位碼輸入,改變對象座標,實現對象的平移
void myKeyboard()
{
if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.UpArrow))
transform.position += transform.forward * velocity;
if(Input.GetKey(KeyCode.S)||Input.GetKey(KeyCode.DownArrow))
transform.position+= -transform.forward * velocity;
if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow))
transform.position += -transform.right * velocity;
if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow))
transform.position += transform.right * velocity;
}
五. 鍵盤軸輸入,改變對象的速度,實現對象的平移
void myAxes()
{
float xMove = Input.GetAxis("Horizontal");
float yMove = Input.GetAxis("Vertical");
if (xMove < 0)
rigidbody.velocity = Vector3.left * velocity;
if (xMove > 0)
rigidbody.velocity = Vector3.right * velocity;
if (yMove < 0)
rigidbody.velocity = Vector3.back * velocity;
if (yMove > 0)
rigidbody.velocity = Vector3.forward * velocity;
}
老孫課堂:https://ke.qq.com/course/410293?tuin=56cb7596
工程源碼下載:https://download.csdn.net/download/sunbowen63/11139123