【Unity】7.3 鍵盤輸入


分類:Unity、C#、VS2015

創建日期:2016-04-21

一、簡介

鍵盤事件也是桌面系統中的基本輸入事件。和鍵盤有關的輸入事件有按鍵按下、按鍵釋放、按鍵長按,Input類中可以通過下圖所示的方法來處理:

image

上面的方法通過傳入按鍵名稱字符串或者按鍵編碼KeyCode指定要判斷的按鍵。

下圖所示是常用按鍵的按鍵名與KeyCode編碼,供讀者參考,完整的按鍵編碼請查閱Unity用戶手冊。

image

二、基本用法示例

下面的代碼演示了如何響應鍵盤按鍵事件:

void Update()

{

//按下鍵盤A鍵

if(Input.GetKeyDown(KeyCode.A))

{

//...

}

//按住鍵盤A鍵

if(Input.GetKey(KeyCode.A))

{

//...

}

//抬起鍵盤A鍵

if(Input.GetKeyUp(KeyCode.A))

{

//...

}

//按下鍵盤左Shift鍵

if(Input.GetKeyDown(KeyCode.LeftShift))

{

//...

}

//按住鍵盤左Shift鍵

if(Input.GetKey(KeyCode.LeftShift))

{

//...

}

//抬起鍵盤左Shift鍵

if(Input.GetKeyUp(KeyCode.LeftShift))

{

//...

}

}

示例(Demo3_1_ControlExample.unity)

該例子演示如何控制模型在x平面上移動。

下面的代碼演示了如何得到Horizontal軸的值

void Update () {

//得到Horizontal軸的值

float axisH = Input.GetAxis("Horizontal");

}

下面的代碼用鍵盤方向鍵或者W、A、S、D按鍵來控制模型在x平面上移動,只需要將腳本(ControlExample.cs文件)添加到模型上即可:

using UnityEngine;
using System.Collections;
public class ControlExample : MonoBehaviour
{
    public float speed = 10.0f;          //行駛速度
    public float rotationSpeed = 100.0f; //轉向速度
    void Update()
    {
        //使用上下箭頭或者W、S鍵來控制前進后退
        float translation = Input.GetAxis("Vertical") * speed;
        //使用左右箭頭或者A、D鍵來控制左右旋轉
        float rotation = Input.GetAxis("Horizontal") * rotationSpeed;
        translation *= Time.deltaTime;
        rotation *= Time.deltaTime;
        //在x-z平面上移動
        transform.Translate(0, 0, translation);
        transform.Rotate(0, rotation, 0);
    }
}

運行效果:

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM