(1)導入EasyTouch5插件,注意該插件對Unity有版本要求函數
(2)首先在場景中建立一個EasyTouch,這個是必需的,它是進行檢測的核心組件,場景中有任何物體使用了EasyTouch的東西都要加載它測試
(3) 首先看一下在4.x中的寫法(指這個插件的4代)ui
using System.Collections; using System.Collections.Generic; using UnityEngine; using HedgehogTeam.EasyTouch; public class EasyTouch4_xDemo : MonoBehaviour { // 在OnEnable中訂閱EasyTouch中的事件 private void OnEnable() { EasyTouch.On_TouchStart += OnTouchStart; EasyTouch.On_TouchUp += OnTouchEnd; EasyTouch.On_Swipe += OnSwipe; } // 在OnDisable和OnDestroy中取消訂閱OnEnable中對應的事件 private void OnDisable() { EasyTouch.On_TouchStart -= OnTouchStart; EasyTouch.On_TouchUp -= OnTouchEnd; EasyTouch.On_Swipe -= OnSwipe; } private void OnDestroy() { EasyTouch.On_TouchStart -= OnTouchStart; EasyTouch.On_TouchUp -= OnTouchEnd; EasyTouch.On_Swipe -= OnSwipe; } // Gesture是EaayTouch定義的類,在屏幕上的全部操做都是Gesture // 若是咱們定義的方法須要EasyTouch幫咱們調用,須要加上這個形參 void OnTouchStart(Gesture gesture) { Debug.Log("OnTouchStart"); Debug.Log("startPosition" + gesture.startPosition); } void OnTouchEnd(Gesture gesture) { Debug.Log("OnTouchEnd"); Debug.Log("actionTime" + gesture.actionTime); } void OnSwipe(Gesture gesture) { Debug.Log("OnSwipe"); Debug.Log("swipe" + gesture.swipe); } }
上面咱們本身定義了3個方法(OnTouchStart、OnTouchEnd、OnSwipe),參數使用了Gesture,而後在當前腳本開始及結束的時候,把咱們定義的3個方法註冊進EasyTouch的內部方法(EasyTouch.On_TouchStart、EasyTouch.On_TouchUp、EasyTouch.On_Swipe)中,這樣當咱們在屏幕上觸發事件的時候,咱們掛在場景中的EasyTouch核心組件會檢測到並執行相關函數。具體的內部方法不用管,這裏只是作個演示。插件
運行:code
(4) 首先看一下在5.x中的寫法,推薦使用這種blog
using System.Collections; using System.Collections.Generic; using UnityEngine; using HedgehogTeam.EasyTouch; public class EasyTouch5_xDemo : MonoBehaviour { void Update() { // EasyTouch5.x版本中的新特性能夠不用書寫訂閱事件等一套語句 // 經過EasyTouch.current來獲取當前玩家輸入的手勢 Gesture currentGesture = EasyTouch.current; if(currentGesture != null && EasyTouch.EvtType.On_TouchStart == currentGesture.type) { // 寫法1:直接在update裏寫遊戲邏輯 Debug.Log("OnTouchStart"); Debug.Log("startPosition" + currentGesture.startPosition); } if(currentGesture != null && EasyTouch.EvtType.On_TouchUp == currentGesture.type) { // 寫法2:將遊戲邏輯放在單獨的函數 OnTouchEnd(currentGesture); } if(currentGesture != null && EasyTouch.EvtType.On_Swipe == currentGesture.type) { OnSwipe(currentGesture); } } // Gesture是EaayTouch定義的類,在屏幕上的全部操做都是Gesture // 若是咱們定義的方法須要EasyTouch幫咱們調用,須要加上這個形參 void OnTouchEnd(Gesture gesture) { Debug.Log("OnTouchEnd"); Debug.Log("actionTime" + gesture.actionTime); } void OnSwipe(Gesture gesture) { Debug.Log("OnSwipe"); Debug.Log("swipe" + gesture.swipe); } }
(5)新特性之QucikGesture遊戲
除了上面兩種方法,該插件還給咱們提供了方便的功能,能夠在須要檢測的物體上添加EasyTouch的一系列組件來檢測事件
它能夠添加以下新特性:拖動,觸摸,長按,縮放,滑動,單雙擊,旋轉ip
注意:在測試中須要使用兩根手指的地方,先按Ctrl鍵預設置一個點A,A點爲中點。而後測試的時候按住Alt鍵移動控制,會在鼠標點生成一個點B,以A爲中心生成另外一個點C,B和C就表明兩根手指。ci
在EasyTouch5.0.17版本中,Quick Pinch的End事件是沒法觸發的,On_PinchEnd與On_TwistEnd的觸發重合了,且會一直觸發On_TwistEnd,這是這個版本的缺陷。
(6)新特性之EasyTouchTrigger
上面還有一個Trigger能夠選