Unity-EasyTouch插件之Two Finger


今天,我們來學習下多手指觸摸屏幕的事件,分別有擠壓(縮放),擠壓(旋轉)

 

擠壓(縮放):

在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");
		}
	}
}

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM