分類:Unity、C#、VS2015
創建日期:2016-04-21
一、簡介
鍵盤事件也是桌面系統中的基本輸入事件。和鍵盤有關的輸入事件有按鍵按下、按鍵釋放、按鍵長按,Input類中可以通過下圖所示的方法來處理:
上面的方法通過傳入按鍵名稱字符串或者按鍵編碼KeyCode指定要判斷的按鍵。
下圖所示是常用按鍵的按鍵名與KeyCode編碼,供讀者參考,完整的按鍵編碼請查閱Unity用戶手冊。

二、基本用法示例
下面的代碼演示了如何響應鍵盤按鍵事件:
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); } }
運行效果:
