Unity鍵位輸入及Input類
一、Unity的基本輸入事件(最常用):
1 . 獲得鍵盤
Input.GetKey(KeyCode.A)
Input.GetKeyDown(KeyCode.A)
Input.GetKeyUp(KeyCode.A)
2.獲得滑鼠資訊
Input.mousePosition // 滑鼠位置
Input.GetMouseButton 獲取按鈕
3.軸輸入
Input.GetAxis 獲取軸
根據座標軸名稱返回虛擬座標系中的值。
使用控制器和鍵盤輸入時此值範圍在-1到1之間;
1、Input類中的常用屬性
屬性名
型別
屬性型別
含義
anyKey
bool
get
獲取任意鍵按住
anyKeyDown
bool
get;
獲取任意鍵按下
mousePosition
Vector3
get;
獲取滑鼠移動的座標
2、Input類中常用屬性
(1)、GetKey(KeyCode key)
方法型別:靜態。
引數:key—鍵盤上的某個鍵。
返回值:bool—當鍵盤上某個鍵被一直按住的時候,其返回值為true,否則為false。
含義:檢測鍵盤上的某個鍵是否被一直按住,如果該鍵一直按住,其返回值為true,否則為false。
過載方法:GetKey(string name)
(2)、GetKeyDown(KeyCodekey)
方法型別:靜態。
引數:key—鍵盤上的某個鍵。
返回值:bool—當鍵盤上某個鍵被按下的時候,其返回值為true,否則為false。
含義:檢測鍵盤上的某個鍵是否被按下,如果該鍵被按下,其返回值為true,否則為false。
過載方法:GetKeyDown(string name)
(3)、GetKeyUp(KeyCodekey)
方法型別:靜態。
引數:key—鍵盤上的某個鍵。
返回值:bool—當鍵盤上某個鍵按下之後擡起的時候,其返回值為true,否則為false。
含義:檢測鍵盤上的某個鍵是否被按下之後擡起,如果該鍵被按下之後擡起,其返回值為true,否則為false。
過載方法:GetKeyUp (string name)
(4)、GetMouseButtonDown(intbutton)
方法型別:靜態。
引數:button—表示滑鼠上的鍵,0:表示滑鼠左鍵,1:表示滑鼠右鍵,2表示滑鼠中鍵,3:表示滑鼠上鍵,4:表示滑鼠下鍵(其中3和4件不經常用,因為有的滑鼠上沒有這兩個鍵)。
返回值:bool—當滑鼠上某個鍵被按下之後,其返回值為true,否則為false。
含義:檢測滑鼠上的某個鍵是否被按下,如果該鍵被按下,其返回值為true,否則為false。
(5)、GetAxis(stringaxisName)
方法型別:靜態。
引數:axisName—軸向,Horizontal:表示水平方向,其值從-1到1之間變化,當A鍵被按下的時候其在水平方向上的向量為0-1(取不到0),當D鍵被按下的時候其在水平方向上的向量為-1-0(取不到0),當A鍵和D鍵都沒有被按下的時候,其水平方向上的向量為0;Vertical:表示豎直方向,其值從-1到1之間的變化,當W鍵被按下的時候其在豎直方向上的向量為0-1(取不到0),當S鍵被按下的時候其在豎直方向上的向量為-1-0(取不到0),當S鍵和W鍵都沒有被按下的時候,其豎直方向上的向量為0。
返回值:float—按下設定的某個鍵之後,表示變化的數值,從-1到1之間變化。
含義:檢測鍵盤上某個按鍵被一直按住的時候,其在設定的方向上的變化。
滑鼠點選:
Input.GetMouseButtonDown(0) //滑鼠左鍵按下
Input.GetMouseButtonDown(1) //滑鼠右鍵按下
Input.GetMouseButtonUp(0) //滑鼠左鍵擡起
Input.GetMouseButtonUp(1) //滑鼠右鍵擡起
鍵盤事件:
Input.GetKeyDown(KeyCode.鍵值) //鍵盤按下
Input.GetKeyUp(KeyCode.鍵值) //鍵盤擡起
常用的鍵值:
KeyCode.大寫字母A-Z //字母鍵
KeyCode.UpArrow
KeyCode.DownArrow
KeyCode.LeftArrow
KeyCode.RightArrow
KeyCode.Return //回車
KeyCode.Escape //Esc返回
KeyCode.Space //空格
KeyCode.LeftControl
KeyCode.RightControl
KeyCode.LeftShift
KeyCode.RightShift
KeyCode.Tab
KeyCode.Delete
KeyCode.Backspace
二、獲取鍵盤或者各電視遙控器鍵值用於輸入事件適配
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class KeyCode : MonoBehaviour {
//顯示鍵值資訊的UI文字元件
public Text keycodeText;
//只能在OnGUI內獲取鍵值
void OnGUI()
{
if (Input.anyKeyDown)
{
Event e = Event.current;
if (e.isKey)
{
keycodeText.text ="按下的鍵值:" + e.keyCode.ToString();
}
}
}
}
Unity鍵值表:
/** 滑鼠鍵值 **/
Mouse0 滑鼠左鍵
Mouse1 滑鼠右鍵
Mouse2 滑鼠中鍵
Mouse3 滑鼠第3個按鍵
Mouse4 滑鼠第4個按鍵
Mouse5 滑鼠第5個按鍵
Mouse6 滑鼠第6個按鍵
/** 鍵盤鍵值 **/
//方向鍵
UpArrow 方向鍵上
DownArrow 方向鍵下
RightArrow 方向鍵右
LeftArrow 方向鍵左
//F功能鍵
F1 功能鍵F1
F2 功能鍵F2
F3 功能鍵F3
F4 功能鍵F4
F5 功能鍵F5
F6 功能鍵F6
F7 功能鍵F7
F8 功能鍵F8
F9 功能鍵F9
F10 功能鍵F10
F11 功能鍵F11
F12 功能鍵F12
F13 功能鍵F13
F14 功能鍵F14
F15 功能鍵F15
//數字鍵
Alpha0 按鍵0
Alpha1 按鍵1
Alpha2 按鍵2
Alpha3 按鍵3
Alpha4 按鍵4
Alpha5 按鍵5
Alpha6 按鍵6
Alpha7 按鍵7
Alpha8 按鍵7
Alpha9 按鍵9
//字母鍵
A ‘a’鍵
B ‘b’鍵
C ‘c’鍵
D ‘d’鍵
E ‘e’鍵
F ‘f’鍵
G ‘g’鍵
H ‘h’鍵
I ‘i’鍵
J ‘j’鍵
K ‘k’鍵
L ‘l’鍵
M ‘m’鍵
N ‘n’鍵
O ‘o’鍵
P ‘p’鍵
Q ‘q’鍵
R ‘r’鍵
S ‘s’鍵
T ‘t’鍵
U ‘u’鍵
V ‘v’鍵
W ‘w’鍵
X ‘x’鍵
Y ‘y’鍵
Z ‘z’鍵
//功能鍵
Backspace 退格鍵
Delete Delete鍵
Tab Tab鍵
Clear Clear鍵
Return 回車鍵
Pause 暫停鍵
Escape ESC鍵
Space 空格鍵
Numlock Numlock鍵
Capslock 大小寫鎖定鍵
ScrollLockScroll Lock鍵
RightShift 右上檔鍵
LeftShift 左上檔鍵
RightControl 右Ctrl鍵
LeftControl 左Ctrl鍵
RightAlt 右Alt鍵
LeftAlt 左Alt鍵
LeftApple 左Apple鍵
LeftWindows 左Windows鍵
RightApple 右Apple鍵
RightWindows 右Windows鍵
AltGr Alt Gr鍵
Help Help鍵
Print Print鍵
SysReq Sys Req鍵
Break Break鍵
Insert Insert鍵
Home Home鍵
End End鍵
PageUp PageUp鍵
PageDown PageDown鍵
//符號鍵
Exclaim ‘!’鍵
DoubleQuote 雙引號鍵
Hash Hash鍵
Dollar ‘$’鍵
Ampersand Ampersand鍵
Quote 單引號鍵
LeftParen 左括號鍵
RightParen 右括號鍵
Asterisk ‘ * ’鍵
Plus ‘ + ’鍵
Comma ‘ , ’鍵
Minus ‘ - ’鍵
Period ‘ . ’鍵
Slash ‘ / ’鍵
Colon ‘ : ’鍵
Semicolon ‘ ; ’鍵
Less ‘ < ‘鍵
Equals ‘ = ‘鍵
Greater ‘ > ‘鍵
Question ‘ ? ’鍵
At ‘@’鍵
LeftBracket ‘ [ ‘鍵
Backslash ‘ \ ’鍵
RightBracket ‘ ] ’鍵
Caret ‘ ^ ’鍵
Underscore ‘ _ ’鍵
BackQuote ‘ ` ’鍵
//小鍵盤
Keypad0 小鍵盤0
Keypad1 小鍵盤1
Keypad2 小鍵盤2
Keypad3 小鍵盤3
Keypad4 小鍵盤4
Keypad5 小鍵盤5
Keypad6 小鍵盤6
Keypad7 小鍵盤7
Keypad8 小鍵盤8
Keypad9 小鍵盤9
KeypadPeriod 小鍵盤“.”
KeypadDivide 小鍵盤“/”
KeypadMultiply 小鍵盤“*”
KeypadMinus 小鍵盤“-”
KeypadPlus 小鍵盤“+”
KeypadEnter 小鍵盤“Enter”
KeypadEquals 小鍵盤“=”