EasyTouch及搖桿控件介紹

一、EasyTouch插件介紹

EasyTouch4.3版本開始已經(jīng)支持UGUI,所以unity版本低于4.6的話是將不能使用這個版本EasyTouch,目前EasyTouch4.3親測可以結(jié)合unity4.6~5.3版本使用。

以下為4.3版本插件包目錄結(jié)構(gòu):

可以看到該版本中EasyTouch分為兩大模塊

第一個模塊EasyTouch是一些基本的響應(yīng)事件,例如點擊屏幕,點擊場景中的物體,由于加入了ETT(Easy Touch Trigger)使用方式和UGUI的事件系統(tǒng)類似,非常方便。

第二個模塊EasyTouchControl則是一些插件中預(yù)先準(zhǔn)備好的控制器集合系統(tǒng)并且結(jié)合了unity自帶的UI系統(tǒng),例如:Dpad,Joystick,TouchPad,Button。每個模塊都有對應(yīng)的說明文件和接口文件,詳細問題就可以參考官方提供的這些文件。

二、 EasyTouch 搖桿功能介紹

ETC(Easy Touch Controls)控件集中有兩種類型的Joystick:

Static(靜態(tài)的):搖桿將會出現(xiàn)在你預(yù)先設(shè)定好的地方。

Dynamic(動態(tài)的):搖桿將會出現(xiàn)在你觸碰到屏幕的地方。你也可以強制搖桿只出現(xiàn)在某個范圍內(nèi)。

每個搖桿控件由兩個圖片組成,一個作為背景,一個作為按鍵。搖桿控件的大小跟背景圖片的大小相關(guān)(這個大小可以由寬度和高度參數(shù)設(shè)置)。

搖桿控件每個軸(X和Y軸)返回參數(shù)大小范圍為-1~1,也可以通過參數(shù)設(shè)置是否要打開對應(yīng)的軸向。

(1)如何創(chuàng)建Joystick

右鍵單擊hierarchy窗口,選擇EasyTouch Controls下的JoyStick。

ETC會自動創(chuàng)建一個canvas和一個EventSystem游戲?qū)ο蟆?/p>

(2)Joystick控件Inspector面板

屬性組說明:

Activated:是否激活這個搖桿控件,即使這個屬性是disable狀態(tài)搖桿控件也可見。

Visible:是否顯示搖桿。

Use Fiexed Update:如果使用物理系統(tǒng)的更新頻率的話需要勾選這個屬性。

Position&Size:設(shè)置搖桿類型和位置、大小。

Axes properties:軸屬性設(shè)置。

Sprites:設(shè)置搖桿的圖片。

Move Events、Touch Events、Down Events、Press Events:在這四個事件面板中,你可以設(shè)置任何系統(tǒng)中已定義的時間,使用方式和UGUI/NGUI的事件調(diào)用方式類似,將項目中已經(jīng)存在的調(diào)用方法直接拖到控件上即可。joystick,DPad,TouchPad這幾種控件的事件響應(yīng)機制類似,可以很容易的實現(xiàn)重用和替換。

(3)Position&Size屬性組

Type:設(shè)置搖桿類型(靜態(tài)or動態(tài))。

Anchor:錨點設(shè)置

No return of the thumb:手指離開屏幕后thunmb圖片是否要回歸原位

Background Size:背景圖片大小。

Thumbe Size:拇指按鈕大?。茨粗竿蟿拥哪菈K圖片大小)。

Radius based on:設(shè)置搖桿控件的半徑大小基于什么軸向決定。這個參數(shù)在你導(dǎo)入的圖片不是正方形時會有用。

關(guān)于動態(tài)joystick的設(shè)置:

動態(tài)joystick需要設(shè)置其出現(xiàn)范圍,可以根據(jù)需要選擇如下類型,如果選擇的是User Defined則需要用戶自己指定活動范圍。

關(guān)于靜態(tài)joystick的設(shè)置:

Anchor:錨點的設(shè)置

Offset:相對錨點的偏移距離

如果選擇的是User Defined則需要用戶自己指定活動范圍。

關(guān)于Area的設(shè)置:

創(chuàng)建area可以用來制定joystick控件的動態(tài)和靜態(tài)活動范圍。

創(chuàng)建方式如下:

Area控件inspector面板屬性說明:

Show at Runtime:項目運行狀態(tài)是否要顯示area控件。

Preset:預(yù)設(shè)的一些Area范圍,如果需要自己設(shè)定具體范圍的話在RectTransform組件中設(shè)置即可。

(4)Axes properties屬性組

Horizontal zxis & Vertical axis:設(shè)置水平、垂直軸是否可用,后面的輸入框可以輸入該軸對應(yīng)名字,并且該命名必須在整個場景中是唯一的。

Inverted axis:翻轉(zhuǎn)軸向正負(fù)值。

Dead length:這個值決定了從中心開始每個軸向上多遠的距離內(nèi)是無效區(qū)域,即每個軸向上移動距離若少于最遠距離的這個比例則該軸向上是沒有返回值的。

On/Off Threshold:開啟關(guān)閉閾值(與down觸發(fā)事件相關(guān),可參考文章下面down events部分)

Speed:這個數(shù)值直接用于操作搖桿移動的時候所控制物體的運動速度,這個數(shù)值可以通過ETCInput.GetAxisSpeed接口獲得(關(guān)于接口的詳細信息可以參考ETCInput_API.PDF文檔)。

Action on:作用時機Press(持續(xù)按住)/Down(按下的一瞬間)發(fā)生反饋。

Direct Action to:設(shè)置搖桿要操控的對象(含有transform組件的游戲?qū)ο螅?/p>

Action:選擇要對action to對象產(chǎn)生的影響。(移動、旋轉(zhuǎn)、施加作用力……)。

Affected axis:作用軸(X/Y)。

Enable inertia:是否激活延遲功能。

Positive key:可以設(shè)置該按鍵與搖桿對應(yīng)軸的正方向(水平軸為右方,垂直軸為上方)上具有同等功能。

Negative key:可以設(shè)置該按鍵與搖桿對應(yīng)軸負(fù)方向(水平軸為左方,垂直軸為下方)上具有同等功能。

(5)Sprites屬性組

設(shè)置背景和拇指按鈕圖標(biāo)對應(yīng)圖片和基本顏色。

也可以直接到對應(yīng)游戲?qū)ο螅ū尘昂湍粗笀D片在場景中分別為兩個游戲?qū)ο螅┑膇mage組件中設(shè)置。

(6)Events屬性組

如何添加事件?

找到對應(yīng)的觸發(fā)方法,點擊加號。

在寫好所要觸發(fā)的具體方法內(nèi)容后,將腳本掛到游戲?qū)ο笙?,再將游戲?qū)ο笸系綄?yīng)觸發(fā)方法下,在function處選擇剛剛寫好的對應(yīng)類下面的方法即可。

Move Events

On Move Start():首次移動搖桿時觸發(fā)(當(dāng)返回到0點位置時觸發(fā)時機將會被重置)

On Move(Vector2):移動搖桿的過程或者搖桿thumb鍵沒有回到原點時將會持續(xù)觸發(fā),將搖桿每個軸上移動的距離(值范圍為-1~1)作為方法參數(shù)傳入。

On Move Speed(Vector2):移動搖桿的過程或者搖桿thumb鍵沒有回到原點時將會持續(xù)觸發(fā),將搖桿每個軸上axisValue * axisSensitivity*Time.deltaTime作為方法參數(shù)傳入。

On Move End():當(dāng)搖桿thumb鍵回到原點或者用戶釋放搖桿時觸發(fā)

Touch Events

On Touch Start():當(dāng)?shù)谝淮斡|摸搖桿時觸發(fā)

On Touch Up():當(dāng)用戶釋放搖桿(停止觸摸)時觸發(fā)

Down Events

On Down Up():用戶第一次按下?lián)u桿并向上移動時觸發(fā)(當(dāng)搖桿thumb鍵回到原點或搖桿位置在對應(yīng)軸threshold值范圍內(nèi)時重置該函數(shù)觸發(fā)條件)

On Down Right():用戶第一次按下?lián)u桿并向右移動時觸發(fā)(當(dāng)搖桿thumb鍵回到原點或搖桿位置在對應(yīng)軸threshold值范圍內(nèi)時重置該函數(shù)觸發(fā)條件)

On Down Down():用戶第一次按下?lián)u桿并向下移動時觸發(fā)(當(dāng)搖桿thumb鍵回到原點或搖桿位置在對應(yīng)軸threshold值范圍內(nèi)時重置該函數(shù)觸發(fā)條件)

On Down Left():用戶第一次按下?lián)u桿并向左移動時觸發(fā)(當(dāng)搖桿thumb鍵回到原點或搖桿位置在對應(yīng)軸threshold值范圍內(nèi)時重置該函數(shù)觸發(fā)條件)

Press Events

On Press Up():按下?lián)u桿并向上移動時觸發(fā)

On Press Right():按下?lián)u桿并向右移動時觸發(fā)

On Press Down():按下?lián)u桿并向下移動時觸發(fā)

On Press Left():按下?lián)u桿并向左移動時觸發(fā)

三、 搖桿控制移動的一個2D小例子

(1)導(dǎo)入相關(guān)資源

導(dǎo)入所需要資源并設(shè)置相關(guān)參數(shù)后拖入到場景中。

(2)創(chuàng)建一個JoyStick

右鍵Hierarchy面板=>Easy Touch Controlls=>JoyStick ?或 ? 菜單欄中單擊GameObject菜單=>Easy Touch Controlls=>JoyStick

調(diào)整Joystick位置,并設(shè)置Joystick要控制的對象和控制方式,具體設(shè)置參數(shù)如下:

(3)創(chuàng)建控制腳本

[csharp]view plaincopy

print?

usingUnityEngine;

usingSystem.Collections;

publicclassPlayerMonitor?:?MonoBehaviour

{

publicvoidJoyStickControlMove(Vector2?direction)

{

this.transform.rotation?=?Quaternion.LookRotation(newVector3(direction.x,?direction.y,?0));

}

}

(4)為joystick添加對應(yīng)控制方法

(5)最終效果

移動Joystick thumb按鈕模型會做出同步運動,并在運動過程中改變模型朝向。


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容