EasyTouch4.3版本開始已經支持UGUI,所以unity版本低於4.6的話是將不能使用這個版本EasyTouch,目前EasyTouch4.3親測可以結合unity4.6~5.3版本使用。
以下為4.3版本插件包目錄結構:
可以看到該版本中EasyTouch分為兩大模塊
第壹個模塊EasyTouch是壹些基本的響應事件,例如點擊屏幕,點擊場景中的物體,由於加入了ETT(Easy Touch Trigger)使用方式和UGUI的事件系統類似,非常方便。
第二個模塊EasyTouchControl則是壹些插件中預先準備好的控制器集合系統並且結合了unity自帶的UI系統,例如:Dpad,Joystick,TouchPad,Button。每個模塊都有對應的說明文件和接口文件,詳細問題就可以參考官方提供的這些文件。
二、 EasyTouch 搖桿功能介紹
ETC(Easy Touch Controls)控件集中有兩種類型的Joystick:
Static(靜態的) :搖桿將會出現在妳預先設定好的地方。
Dynamic(動態的) :搖桿將會出現在妳觸碰到屏幕的地方。妳也可以強制搖桿只出現在某個範圍內。
每個搖桿控件由兩個圖片組成,壹個作為背景,壹個作為按鍵。搖桿控件的大小跟背景圖片的大小相關(這個大小可以由寬度和高度參數設置)。
搖桿控件每個軸(X和Y軸)返回參數大小範圍為-1~1,也可以通過參數設置是否要打開對應的軸向。
(1)如何創建Joystick
右鍵單擊hierarchy窗口,選擇EasyTouch Controls下的JoyStick。
ETC會自動創建壹個canvas和壹個EventSystem遊戲對象。
(2)Joystick控件Inspector面板
屬性組說明:
Activated:是否激活這個搖桿控件,即使這個屬性是disable狀態搖桿控件也可見。
Visible:是否顯示搖桿。
Use Fiexed Update:如果使用物理系統的更新頻率的話需要勾選這個屬性。
Position&Size:設置搖桿類型和位置、大小。
Axes properties:軸屬性設置。
Sprites:設置搖桿的圖片。
Move Events、Touch Events、Down Events、Press Events:在這四個事件面板中,妳可以設置任何系統中已定義的時間,使用方式和UGUI/NGUI的事件調用方式類似,將項目中已經存在的調用方法直接拖到控件上即可。joystick,DPad,TouchPad這幾種控件的事件響應機制類似,可以很容易的實現重用和替換。
(3)Position&Size屬性組
Type:設置搖桿類型(靜態or動態)。
Anchor:錨點設置
No return of the thumb:手指離開屏幕後thunmb圖片是否要回歸原位
Background Size:背景圖片大小。
Thumbe Size:拇指按鈕大小(即拇指拖動的那塊圖片大小)。
Radius based on:設置搖桿控件的半徑大小基於什麽軸向決定。這個參數在妳導入的圖片不是正方形時會有用。
關於動態joystick的設置:
動態joystick需要設置其出現範圍,可以根據需要選擇如下類型,如果選擇的是User Defined則需要用戶自己指定活動範圍。
關於靜態joystick的設置:
Anchor:錨點的設置
Offset:相對錨點的偏移距離
如果選擇的是User Defined則需要用戶自己指定活動範圍。
關於Area的設置:
創建area可以用來制定joystick控件的動態和靜態活動範圍。
創建方式如下:
Area控件inspector面板屬性說明:
Show at Runtime:項目運行狀態是否要顯示area控件。
Preset:預設的壹些Area範圍,如果需要自己設定具體範圍的話在RectTransform組件中設置即可。
(4)Axes properties屬性組
Horizontal zxis & Vertical axis:設置水平、垂直軸是否可用,後面的輸入框可以輸入該軸對應名字,並且該命名必須在整個場景中是唯壹的。
Inverted axis:翻轉軸向正負值。
Dead length:這個值決定了從中心開始每個軸向上多遠的距離內是無效區域,即每個軸向上移動距離若少於最遠距離的這個比例則該軸向上是沒有返回值的。
On/Off Threshold:開啟關閉閾值(與down觸發事件相關,可參考文章下面down events部分)
Speed:這個數值直接用於操作搖桿移動的時候所控制物體的運動速度,這個數值可以通過ETCInput.GetAxisSpeed接口獲得(關於接口的詳細信息可以參考ETCInput_API.PDF文檔)。
Action on:作用時機Press(持續按住)/Down(按下的壹瞬間)發生反饋。
Direct Action to:設置搖桿要操控的對象(含有transform組件的遊戲對象)。
Action:選擇要對action to對象產生的影響。(移動、旋轉、施加作用力……)。
Affected axis:作用軸(X/Y)。
Enable inertia:是否激活延遲功能。
Positive key:可以設置該按鍵與搖桿對應軸的正方向(水平軸為右方,垂直軸為上方)上具有同等功能。
Negative key:可以設置該按鍵與搖桿對應軸負方向(水平軸為左方,垂直軸為下方)上具有同等功能。
(5)Sprites屬性組
設置背景和拇指按鈕圖標對應圖片和基本顏色。
也可以直接到對應遊戲對象(背景和拇指圖片在場景中分別為兩個遊戲對象)的image組件中設置。
(6)Events屬性組
如何添加事件?
找到對應的觸發方法,點擊加號。
在寫好所要觸發的具體方法內容後,將腳本掛到遊戲對象下,再將遊戲對象拖到對應觸發方法下,在function處選擇剛剛寫好的對應類下面的方法即可。
Move Events
On Move Start():首次移動搖桿時觸發(當返回到0點位置時觸發時機將會被重置)
On Move(Vector2):移動搖桿的過程或者搖桿thumb鍵沒有回到原點時將會持續觸發,將搖桿每個軸上移動的距離(值範圍為-1~1)作為方法參數傳入。
On Move Speed(Vector2):移動搖桿的過程或者搖桿thumb鍵沒有回到原點時將會持續觸發,將搖桿每個軸上axisValue * axisSensitivity*Time.deltaTime作為方法參數傳入。
On Move End():當搖桿thumb鍵回到原點或者用戶釋放搖桿時觸發
Touch Events
On Touch Start():當第壹次觸摸搖桿時觸發
On Touch Up():當用戶釋放搖桿(停止觸摸)時觸發
Down Events
On Down Up():用戶第壹次按下搖桿並向上移動時觸發(當搖桿thumb鍵回到原點或搖桿位置在對應軸threshold值範圍內時重置該函數觸發條件)
On Down Right():用戶第壹次按下搖桿並向右移動時觸發(當搖桿thumb鍵回到原點或搖桿位置在對應軸threshold值範圍內時重置該函數觸發條件)
On Down Down():用戶第壹次按下搖桿並向下移動時觸發(當搖桿thumb鍵回到原點或搖桿位置在對應軸threshold值範圍內時重置該函數觸發條件)
On Down Left():用戶第壹次按下搖桿並向左移動時觸發(當搖桿thumb鍵回到原點或搖桿位置在對應軸threshold值範圍內時重置該函數觸發條件)
Press Events
On Press Up():按下搖桿並向上移動時觸發
On Press Right():按下搖桿並向右移動時觸發
On Press Down():按下搖桿並向下移動時觸發
On Press Left():按下搖桿並向左移動時觸發
三、 搖桿控制移動的壹個2D小例子
(1)導入相關資源
導入所需要資源並設置相關參數後拖入到場景中。
(2)創建壹個JoyStick
右鍵Hierarchy面板=>Easy Touch Controlls=>JoyStick ?或 ? 菜單欄中單擊GameObject菜單=>Easy Touch Controlls=>JoyStick
調整Joystick位置,並設置Joystick要控制的對象和控制方式,具體設置參數如下:
(3)創建控制腳本
[csharp] view plain copy
print ?
usingUnityEngine;
usingSystem.Collections;
publicclassPlayerMonitor?:?MonoBehaviour
{
publicvoidJoyStickControlMove(Vector2?direction)
{
this.transform.rotation?=?Quaternion.LookRotation(newVector3(direction.x,?direction.y,?0));
}
}
(4)為joystick添加對應控制方法
(5)最終效果
移動Joystick thumb按鈕模型會做出同步運動,並在運動過程中改變模型朝向。