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