1. 程式人生 > >Input輸入對象常用方法詳解

Input輸入對象常用方法詳解

知新樹 寧金峰


Input對象可以獲取用戶所有行為的輸入,如鼠標、鍵盤、加速度、陀螺儀、按鈕等,所以掌握Input對象就可以在外部輸入信息和系統之間進行交互。

Input對象的主要變量:

mousePonsition 當前鼠標的像素坐標

anyKeyDown 用戶點擊任何鍵或鼠標按鈕,第一幀返回true

acceleration 加速度傳感器的值

anykey 當前是否有按鍵按住,若有返回true

inputString 返回鍵盤輸入的字符串

Touches 返回當前所有觸摸(touch)列表

1mousePonsition變量

變量mousePonsition是一個三維坐標,用於獲取當前鼠標的像素坐標,像素坐標是以屏幕左下角為(

0,0)點,屏幕右上角為(Screen.width,Screen.height)計算的,具體獲取方式可以參看一下代碼:

Void Update(){

If(Input.GetButtonDown(0))//點擊鼠標左鍵

{

Debug.Log(Input.mousePonsition);//打印鼠標位置

}

}

2anyKeyDown anykey變量

變量anykey用於顯示當前是否有任何按鍵按下,若是有,始終返回true。將下面代碼添加到腳本中,將腳本掛在到攝像機上,運行Unity,當按下任何鍵(按鈕持續處於按下)時就會不停的顯示打印信息:

Void Update()

{

If(Input.anyKey) //按下任意鍵

{

Debug(“有按鍵被持續按下”); //打印信息

}

}

變量anyKeyDown和變量anykey有一些區別,前者只有在按下按鈕後的第一幀返回True。將上面的代碼稍微修改後運行場景即可發現,只要有按鈕按下,就會打印一次信息,若是按鈕持續處於按下狀態,也僅僅打印第一次。

Void Update()

{

If(InputanyKeyDown ) //按下任意鍵

{

Debug(“有按鍵被按下”); //打印信息

}

}

3inputString 變量

變量inputString返回值在這一幀中輸入的字符串。註意,在返回的字符串中只包含ASCII碼中的字符,若是本次沒有輸入字符串就會返回一個空串,如下面代碼顯示:

Void Update()

{

If(Input.inputString !=””)

{

Debug.Log(Input.inputString);

}

}

4GetButton方法、GetButtonDown方法與GetButtonUP方法

這三種方法用於監聽虛擬按鈕的按下狀態,包括按鈕按下時、按鈕按下中、按鈕擡起時3個狀態,開發人員需要在Update方法中回調這些方法來判斷按鈕的狀態。其中的區別可以參看下面的功能代碼片段:

Void Update()

{

if (Input.GetButton("fiel"))

{

Debug.Log("按鍵被連續按下");

}

if (Input.GetButtonDown("fiel"))

{

Debug.Log("按鍵被按下");

}

if (Input.GetButtonUp("fiel"))

{

Debug.Log("按鍵被擡起");

}

}

5GetKey方法、GetKeyDown方法、GetKeyUp方法

3中方法主要用於監聽鍵盤上的按鍵狀態,從開發人員需要在Update方法中調用這些方法,並傳入想要監聽的鍵名或鍵碼。每個按鈕的狀態也分為按下、擡起、按住3種。使用者可以根據需要進行選用。使用方法如下:

if (Input.GetKey(KeyCode.A)) //KeyCode 是枚舉類型,可以獲取裏面的每一個枚舉元素,枚舉元素分別對應鍵盤上的按鍵

{

Debug.Log("A鍵被按住");

}

if (Input.GetKeyDown(KeyCode.A))

{

Debug.Log("A鍵被按下");

}

if (Input.GetKeyUp(KeyCode.A))

{

Debug.Log("A鍵被擡起");

}

6、GetMounseButton方法、GetMouseButtonDown方法和GetMouseButtonUP方法

當開發計算機端的遊戲時,肯定需要監聽鼠標的操控。Input輸入對象中包含了GetMounseButtonGetMouseButtonDownGetMouseButtonUP三種方法,用他們來監聽鼠標按鍵。在使用時只要在Update中傳入鼠標按鍵的索引,就可以對鼠標進行監聽了。與前面介紹的方法類似,這三種方法也分別監聽了鼠標按鍵的3個狀態:

if (Input.GetMouseButton(0))

{

Debug.Log("鼠標左鍵鍵被按住");

}

if (Input.GetMouseButtonDown(0))

{

Debug.Log("鼠標左鍵鍵被按下");

}

if (Input.GetMouseButtonUp(0))

{

Debug.Log("鼠標左鍵鍵被擡起");

}

說明:這三個方法的參數是一個int類型索引。常用的鼠標按鍵為012分別對應的鼠標的左鍵、右鍵、中鍵。需要使用的時候傳入相應的索引就可以監聽對應的按鍵了


本文出自 “13233523” 博客,請務必保留此出處http://13243523.blog.51cto.com/13233523/1971003

Input輸入對象常用方法詳解