今天,我們來學習下多手指觸摸屏幕的事件,分別有擠壓(縮放),擠壓(旋轉)
擠壓(縮放):
在easytouch中,雙手指擠壓縮放的英文為Pinch
好了今天我們的測試是雙手指擠壓對物體進行縮放。我們測試的是Cube。
在easytouch中,分別有擠入(PinchIn)和擠出(PinchOut)這這兩個對立的觸屏手勢。
using UnityEngine; using System.Collections; public class TouchTest : MonoBehaviour { void OnEnable(){ EasyTouch.On_PinchIn += On_PinchIn;//擠入 EasyTouch.On_PinchOut += On_PinchOut;//擠出 EasyTouch.On_PinchEnd += On_PinchEnd;//擠壓結束 } void OnDisable(){ UnsubscribeEvent(); } void OnDestroy(){ UnsubscribeEvent(); } // Unsubscribe to events void UnsubscribeEvent(){ EasyTouch.On_PinchIn -= On_PinchIn; EasyTouch.On_PinchOut -= On_PinchOut; EasyTouch.On_PinchEnd -= On_PinchEnd; } void Start(){ } private void On_PinchIn(Gesture gesture){ if (gesture.pickObject == gameObject){ float zoom = Time.deltaTime * gesture.deltaPinch; Vector3 scale = transform.localScale ; transform.localScale = new Vector3( scale.x - zoom, scale.y -zoom, scale.z-zoom); } } private void On_PinchOut(Gesture gesture){ if (gesture.pickObject == gameObject){ float zoom = Time.deltaTime * gesture.deltaPinch; Vector3 scale = transform.localScale ; transform.localScale = new Vector3( scale.x + zoom, scale.y +zoom,scale.z+zoom); } } private void On_PinchEnd(Gesture gesture){ if (gesture.pickObject == gameObject){ print ("End"); } } }
這里注意一下,擠壓的時候兩個手指必須都接觸到GameObject,不能一只有一只沒有。
可能有些小伙伴還不知道怎么在電腦上測試,在easytoucjh的屬性面板里面,我們發現按下Left Alt是默認的Pinch和Twist的按鍵。
擠壓(旋轉):
在easytouch中雙手擠壓旋轉對應的英文為Twist
using UnityEngine; using System.Collections; public class TouchTest : MonoBehaviour { void OnEnable(){ EasyTouch.On_Twist += On_Twist; EasyTouch.On_TwistEnd += On_TwistEnd; } void OnDisable(){ UnsubscribeEvent(); } void OnDestroy(){ UnsubscribeEvent(); } // Unsubscribe to events void UnsubscribeEvent(){ EasyTouch.On_Twist -= On_Twist; EasyTouch.On_TwistEnd -= On_TwistEnd; } void Start(){ } private void On_Twist(Gesture gesture) { if (gesture.pickObject == gameObject) { print(gesture.twistAngle); transform.Rotate(new Vector3(0,0,gesture.twistAngle));//旋轉擠壓的角度, } } private void On_TwistEnd(Gesture gesture) { if (gesture.pickObject == gameObject) { print("End"); } } }