Unity開發備忘錄000008:鍵盤交互

鍵盤操作

一. 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

 

發佈了40 篇原創文章 · 獲贊 12 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章