標籤:android style 使用 strong os io
Input 輸入
按鍵
Input.GetKey(“up”) = Input.GetKey(KeyCode.UpArrow) 按住鍵盤上鍵
Input.GetKeyDown (“up”) 按下鍵盤上鍵
Input.GetKeyUp (“up”) 放開鍵盤上鍵
(KeyCode.UpArrow)為鍵碼
Input.GetButton(“ ”) = Input.GetKey(“ ”) 兩種幾乎相同(目前沒發現差異)
Input.GetButton一樣會有分Input.GetButtonDown & Input.GetButtonUp
(“ ”)符號內為按鍵英文~ 參考Unity→Edit→Project Settings→Input(可新增)
PS : Unity內並沒有內建android(返回與選單)功能鍵設定,必須使用者自行設定,在Inpu.GetButton(“ ”)中”escpae”&”menu”有對應返回與選單鍵
例: if(Input.GetKeyDown (“escpae”)){ Application.Quit(); } 按下返回就退出
滑鼠用
Input.GetMouseButton(0) 當0鍵被按住持續偵測(包含down和up各一次)
Input.GetMouseButtonDown(0) 當0鍵被按下一次
Input.GetMouseButtonUp(0) 當0鍵放開一次
鍵 : 0=左 1=中 2=右
PS : Unity有對應滑鼠左鍵輸入功能部分可以用在Android手指觸碰的操作上
擷取軸
Input.GetAxis(“ ”) ~ (“ ”)參考Unity→Edit→Project Settings→Input(可新增)
根據座標軸傳回虛擬座標值,取得輸入裝置輸入時值範圍-1 ~ 1
例: Input.GetAxis(“Mouse x”) ~ 可取得滑鼠橫向移動增量
Android 常用 Input
觸碰
Input.touchCount ~ 觸碰數量
Input.GetTouch(0) ~ 當第一支手指觸碰時
0=第一支1=第二支2=第三支以此類推(觸碰到點的偵測數量上限未測不知)
TouchPhase ~ 觸碰狀態有分五種Began Moved Stationary Ended Canceled
Began按下Moved移動Stationary按住沒移動Ended離開
Canceled用於觸碰超過5點以上或貼至臉上時取消追蹤
Input.GetTouch(0).position 取得第一支手指觸碰座標
例 :
Touch 單點移動判斷式
if(Input.touchCount == 1 && Input.GetTouch(0).phase==TouchPhase.Moved){執行}
(觸碰數量為1個) 和(第一支手指觸碰時的狀態為移動) 時{執行}
Touch 雙點移動判斷式
if(Input.touchCount >1){
if(Input.GetTouch(0).phase==TouchPhase.Moved || Input.GetTouch(1).phase==TouchPhase.Moved){ 執行}}
(觸碰數量超過1個) 和
(第一支手指觸碰時的狀態為移動)或著(第二支手指觸碰時的狀態為移動) 時{執行}
Input.GetTouch(0) 和 Input.GetMouseButton(0)
單點時大致上互連(不確定是否完全相同)
多點上就會出現差異Touch會取手指前後順序Mouse會取中心點