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