78 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			78 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using UnityEngine; | ||
|  | using System.Collections; | ||
|  | using HedgehogTeam.EasyTouch; | ||
|  | 
 | ||
|  | public class FingerTouch : MonoBehaviour { | ||
|  | 
 | ||
|  | 	private TextMesh textMesh; | ||
|  | 	public Vector3 deltaPosition = Vector2.zero; | ||
|  | 	public int fingerId=-1; | ||
|  | 
 | ||
|  | 	void OnEnable(){ | ||
|  | 		EasyTouch.On_TouchStart += On_TouchStart; | ||
|  | 		EasyTouch.On_TouchUp += On_TouchUp; | ||
|  | 		EasyTouch.On_Swipe += On_Swipe; | ||
|  | 		EasyTouch.On_Drag += On_Drag; | ||
|  | 		EasyTouch.On_DoubleTap += On_DoubleTap; | ||
|  | 		textMesh =(TextMesh) GetComponentInChildren<TextMesh>(); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	void OnDestroy(){ | ||
|  | 		EasyTouch.On_TouchStart -= On_TouchStart; | ||
|  | 		EasyTouch.On_TouchUp -= On_TouchUp; | ||
|  | 		EasyTouch.On_Swipe -= On_Swipe; | ||
|  | 		EasyTouch.On_Drag -= On_Drag; | ||
|  | 		EasyTouch.On_DoubleTap -= On_DoubleTap; | ||
|  | 	} | ||
|  | 	 | ||
|  | 
 | ||
|  | 	void On_Drag (Gesture gesture) | ||
|  | 	{ | ||
|  | 		if ( gesture.pickedObject.transform.IsChildOf(gameObject.transform) && fingerId == gesture.fingerIndex){ | ||
|  | 			Vector3 position = gesture.GetTouchToWorldPoint(gesture.pickedObject.transform.position); | ||
|  | 			transform.position = position - deltaPosition; | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	void On_Swipe (Gesture gesture) | ||
|  | 	{ | ||
|  | 		if (fingerId == gesture.fingerIndex){ | ||
|  | 			Vector3 position = gesture.GetTouchToWorldPoint(transform.position); | ||
|  | 			transform.position = position - deltaPosition; | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	void On_TouchStart (Gesture gesture) | ||
|  | 	{ | ||
|  | 		if (gesture.pickedObject!=null && gesture.pickedObject.transform.IsChildOf(gameObject.transform)){ | ||
|  | 			fingerId = gesture.fingerIndex; | ||
|  | 			textMesh.text = fingerId.ToString(); | ||
|  | 
 | ||
|  | 			Vector3 position = gesture.GetTouchToWorldPoint(gesture.pickedObject.transform.position); | ||
|  | 			deltaPosition = position - transform.position; | ||
|  | 		} | ||
|  | 	} | ||
|  | 	 | ||
|  | 	void On_TouchUp (Gesture gesture) | ||
|  | 	{ | ||
|  | 
 | ||
|  | 		if (gesture.fingerIndex == fingerId){ | ||
|  | 			fingerId = -1; | ||
|  | 			textMesh.text=""; | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public void InitTouch(int ind){ | ||
|  | 		fingerId = ind; | ||
|  | 		textMesh.text = fingerId.ToString(); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	void On_DoubleTap (Gesture gesture) | ||
|  | 	{ | ||
|  | 		if (gesture.pickedObject!=null && gesture.pickedObject.transform.IsChildOf(gameObject.transform)){ | ||
|  | 			DestroyImmediate( transform.gameObject ); | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | } |