2011年6月30日 星期四

UNITY3D - 控制輸入設定

輸入控制是遊戲最基本的部分,那U3D要怎麼設定輸入控制呢?
首先我們開啟Edit->Project Settings->Input就可以看到Inspector視窗呈現類似的畫面
Axes底下就是各按鍵設定,如果有想要增加按鍵數量的話可以加大Size就會看到下面的按鍵數量增加。
每個按鍵下面都有以下屬性:
Name:用來定義按鍵的名稱,關係到程式呼叫時的對應。
Descriptive Name:玩家在更改輸入控制畫面看到的名字。
Descriptive Negative Name:玩家在更改輸入控制畫面看到的名字(通常為方向控制)。
Negative Button:此輸入所對應的按鍵(通常為方向控制才有用到),程式中取到的值為-1~0。
Positive Button:此輸入所對應的按鍵,程式中取到的值為0~1。
Alt Negative Button:此輸入所對應的替代按鍵(通常為方向控制才有用到),程式中取到的值為-1~0。
Alt Positive Button:此輸入所對應的替代按鍵,程式中取到的值為0~1。
Gravity:設置按鍵恢復的速度。
Dead:調節類比訊號的敏感度(如類比搖桿)。
Sensitivity:調節數位訊號的敏感度。
Snap:勾選後,按反向鍵時會先將數值歸零。
Invert:勾選後,對應的按鍵會相反(通常用於飛行遊戲)。
Type:按鍵的輸入型態(若要改用遊戲手把記得更改此項)。
Axis:此按鍵的軸向。
Joy Num:設定為第幾個手把(若是用遊戲手把的話)。


程式部分:

Input.GetKey (name : string) : bool

用於檢查某特定按鍵是否被按,跟Input的設定無關,會被連續偵測到。

Input.GetKeyDown (name : string) : bool


用於檢查某特定按鍵是否被按下,跟Input的設定無關,只有在被按下的時候才觸發,按鍵不放開重按則無效。

Input.GetKeyUp (name : string) : bool

用於檢查某特定按鍵是否被按下,跟Input的設定無關,只有在被放開的時候才觸發。

Input.GetButton (buttonName : string) : bool

一樣是用來檢查按鍵是否被按,buttonName是Input所設定的名字,會被連續偵測到。

Input.GetButtonDown (buttonName : string) : bool

一樣是用來檢查按鍵是否被按,buttonName是Input所設定的名字,只有在被按下的時候才觸發,按鍵不放開重按則無效。

Input.GetButtonUp (buttonName : string) : bool

一樣是用來檢查按鍵是否被按,buttonName是Input所設定的名字,只有在被放開的時候才觸發。

Input.GetAxis (axisName : string) : float

通常用於方向鍵偵測,回傳值為-1~1,跟Input的設定息息相關。

還有其他的函式可以用,但相信這些就很夠了...

1 則留言: