(一)配置部分:
一.將預設體拖入場景中,我用的是下圖這個預設體,因為既有搖桿又有按鈕嘛,兩個正好都能學習到
二.改變搖桿和按鈕的外觀,如下圖所示,可以看出這個插件是用UGUI寫的,改圖片只需要改Image里面的配置即可,不再贅述,需要注意的是Button和NGUI一樣有一個按下的效果圖片,還是挺不錯的
三.和以前的版本一樣,搖桿的配置同樣有靜態和動態兩種,如下圖。
1.默認Type:Static靜態搖桿,即搖桿一直存在,在Anchor中可以固定其錨點使搖桿快速導航到特定位置。
2.動態搖桿Type:Dynamic,當不觸摸Joystick area搖桿區域(可展開設置)時則會動態隱藏,這個功能相當實用,我覺得驅使我不使用自己寫的搖桿最大的原因可能就是不願自己實現這個功能吧,
四.搖桿和按鈕的size屬性可以更改其大小,axis屬性可以改變相對於Unity的映射,大家可以自行研究下。
(二)代碼部分
1 using UnityEngine; 2 using System.Collections; 3 using UnityEngine.EventSystems; 4 using System; 5 public class Move : MonoBehaviour{ 6 //獲取到場景中的Joystick 7 public ETCJoystick controlETCJoystick; 8 //獲取場景中的Button 9 public ETCButton controlETCButton; 10 11 void Start () { 12 //EasyTouch自己的靜態方法,通過搖桿的名字去查找哪個搖桿 13 controlETCJoystick = ETCInput.GetControlJoystick("Joystick"); 14 //Bug就在這里面,這是作者寫好的通過名字查找按鈕的方法,實際運行卻報錯,下面我們會說到 15 controlETCButton = ETCInput.GetControlButton("Button jump"); 16 17 //和UGUI的用法一樣,我們可以用lamda表達式或者匿名委托來傳遞方法,或者UnityAction來傳遞 18 // 1. controlETCButton.onDown.AddListener(() => { OnButtonClick(); }); 19 // 2. controlETCButton.onDown.AddListener(delegate() {OnButtonClick(); }); 20 21 //3.這種方法還是第一次用到,不過挺好理解的,傳遞Action是不可以的 22 //當然啦,初學者都不理解,那么就拖拽吧,拖拽大法好啊~ 23 UnityEngine.Events.UnityAction listener = OnButtonClick; 24 controlETCButton.onDown.AddListener(listener); 25 26 } 27 28 void Update () { 29 //這是通過Translate移動的方法,我們可以看出controlETCJoystick.axisX.axisValue代表X方向的軸向,后者則是Y軸方向 30 this.transform.Translate(new Vector3(controlETCJoystick.axisX.axisValue, controlETCJoystick.axisY.axisValue, 0) 31 * Time.deltaTime * 5, 32 Space.Self); 33 } 34 /// <summary> 35 /// 點擊方法 36 /// </summary> 37 void OnButtonClick() 38 { 39 Debug.Log("哎呀,我被按下了"); 40 } 41 }
(三)Bug部分