預設輸入軸: Horizontal 和 Vertical被映射到w, a, s, d鍵和方向鍵 Fire1, Fire2, Fire3被分別映射到Ctrl,Option(Alt)和Command鍵 Mouse X 和 Mouse Y被映射到滑鼠移動增量 Window Shake X 和 Window ...
預設輸入軸:
Horizontal 和 Vertical被映射到w, a, s, d鍵和方向鍵
Fire1, Fire2, Fire3被分別映射到Ctrl,Option(Alt)和Command鍵
Mouse X 和 Mouse Y被映射到滑鼠移動增量
Window Shake X 和 Window Shake Y 被映射到視窗的移動
添加新的輸入軸
添加新的虛擬軸,選擇菜單Edit->Project Settings->Input :
名稱(Name):名稱用於從腳本使用這個軸
描述名稱(Descriptive Name):正值名稱顯示於配置對話框的輸入標簽,用於獨立版。
描述負名稱(Descriptive Negative Name):負值名稱顯示於配置對話框的輸入標簽,用於獨立版。
負按鈕(Negative Button):該按鈕用於在負方向移動軸 (如:左)
正按鈕(Positive Button):該按鈕用於在正方向移動軸 (如:右)
備選負按鈕(Alt Negative Button):備選按鈕用於在負方向移動軸(如:a)
備選正按鈕(Alt Positive Button):備選按鈕用於在正方向移動軸 (如:d)
重力(Gravity):當沒有按鈕被按下,在單位每秒速度,軸下降到0。
死亡(Dead):模擬的死區大小。 設定範圍內所有模擬設備的值為0。
靈敏度(Sensitivity):在單位每秒速度,軸將移向目標值。這近用於數位設備。
捕捉(Snap):如果啟用,當按下相反方向的按鈕,該軸值將重設為0。
反向(Invert):如果啟用,負按鈕將提供一個正值,反之亦然。
類型(Type):控制軸的輸入設備類型
軸(Axis):連接設備的軸將控制這個軸 (因為上面正負按鈕設置的是左右,所以這裡要選X軸)
操作桿(Joy Num)連接操縱桿將控制這個軸
移動設備輸入
unity 為你提供訪問iOS/android系統的Input 和 iOS Input腳本介面。
多點觸控
觸控列表(Input.touches):返回上一幀所有觸控狀態的對象列表(Touch[]:單個觸摸狀態)。
觸控狀態(TouchPhase):(例子:if(touch.phase != TouchPhase.Began))
Began:手指已觸摸屏幕。
Moved:手指在屏幕上移動。
Stationary:手指觸摸屏幕,但並沒有移動。
Ended:手指從屏幕上移開。這是一個觸摸的最後狀態。
Canceled:系統取消跟蹤觸摸,如用戶把屏幕放到他臉上或超過五個接觸同時發生。這是一個觸摸的最後狀態。
設備面朝方向
Input.deviceOrientation : (例子:if (Input.deviceOrientation == DeviceOrientation.FaceDown))
Unknown:設備的方向不能被確定。
Portrait:設備在縱向模式,設備直立並home按鈕在底部。
PortraitUpsideDown:設備在縱向模式,但顛倒一下,設備直立並home按鈕在頂部。
LandscapeLeft:設備在橫向模式,設備直立並home按鈕在右邊。
LandscapeRight:設備在橫向模式,設備直立並home按鈕在左邊。
FaceUp:設備保持與地面平行,屏幕的面向上。
FaceDown:設備保持與地面平行,屏幕的面向下。
加速感測器
Input.acceleration :豎直拿著設備(home按鈕在底部),X軸指向右,Y軸指向上,Z軸指向前。
加速度感測器數值可能被顛簸影響。應用低通過過濾器可以是它平滑,擺脫干擾。
//加速器刷新間隔
float AccelerometerUpdateInterval = 1.0f / 60.0f;
//值越大, 被過濾值將彙集當前輸入採樣越慢
float LowPassKernelWidthInSeconds = 1.0f;
//過濾範圍
private float LowPassFilterFactor = AccelerometerUpdateInterval / LowPassKernelWidthInSeconds;
private Vector3 lowPassValue = Vector3.zero;
void Start () {
lowPassValue = Input.acceleration;
}
//過濾方法 (獲取加速量調用此方法即可)
Vector3 LowPassFilterAccelerometer(){
lowPassValue = Mathf.Lerp(lowPassValue, Input.acceleration, LowPassFilterFactor);
return lowPassValue;
}
更多unity2018的功能介紹請到paws3d爪爪學院查找。