83 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			83 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | /*********************************************** | |||
|  | 				EasyTouch V | |||
|  | 	Copyright © 2014-2015 The Hedgehog Team | |||
|  |     http://www.thehedgehogteam.com/Forum/ | |||
|  | 		 | |||
|  | 	  The.Hedgehog.Team@gmail.com | |||
|  | 		 | |||
|  | **********************************************/ | |||
|  | using UnityEngine; | |||
|  | using System.Collections; | |||
|  | using UnityEngine.Events; | |||
|  | using UnityEngine.EventSystems; | |||
|  | 
 | |||
|  | namespace HedgehogTeam.EasyTouch{ | |||
|  | [AddComponentMenu("EasyTouch/Quick Tap")] | |||
|  | public class QuickTap : QuickBase { | |||
|  | 
 | |||
|  | 	#region Events | |||
|  | 	[System.Serializable] public class OnTap : UnityEvent<Gesture>{} | |||
|  | 	 | |||
|  | 	[SerializeField]  | |||
|  | 	public OnTap onTap; | |||
|  | 	#endregion | |||
|  | 
 | |||
|  | 	#region Enumeration | |||
|  | 	public enum ActionTriggering {Simple_Tap,Double_Tap}; | |||
|  | 	#endregion | |||
|  | 
 | |||
|  | 	#region Members | |||
|  | 	public ActionTriggering actionTriggering; | |||
|  | 	private Gesture currentGesture; | |||
|  | 	#endregion | |||
|  | 
 | |||
|  | 	#region Monobehavior CallBack | |||
|  | 	public QuickTap(){ | |||
|  | 		quickActionName = "QuickTap"+ GetInstanceID().ToString(); | |||
|  | 	} | |||
|  | 
 | |||
|  | 	void Update(){ | |||
|  | 		currentGesture = EasyTouch.current; | |||
|  | 		 | |||
|  | 		if (!is2Finger){ | |||
|  | 			if (currentGesture.type == EasyTouch.EvtType.On_DoubleTap && actionTriggering == ActionTriggering.Double_Tap){ | |||
|  | 				DoAction(currentGesture); | |||
|  | 			} | |||
|  | 			 | |||
|  | 			if (currentGesture.type == EasyTouch.EvtType.On_SimpleTap && actionTriggering== ActionTriggering.Simple_Tap){ | |||
|  | 				DoAction(currentGesture); | |||
|  | 			} | |||
|  | 			 | |||
|  | 		} | |||
|  | 		else{ | |||
|  | 			 | |||
|  | 			if (currentGesture.type == EasyTouch.EvtType.On_DoubleTap2Fingers && actionTriggering== ActionTriggering.Double_Tap){ | |||
|  | 				DoAction(currentGesture); | |||
|  | 			} | |||
|  | 			 | |||
|  | 			if (currentGesture.type == EasyTouch.EvtType.On_SimpleTap2Fingers && actionTriggering== ActionTriggering.Simple_Tap){ | |||
|  | 				DoAction(currentGesture); | |||
|  | 			} | |||
|  | 		} | |||
|  | 	} | |||
|  | 	#endregion | |||
|  | 
 | |||
|  | 	void DoAction(Gesture gesture){ | |||
|  | 		if ( realType == GameObjectType.UI){ | |||
|  | 			if (gesture.isOverGui ){ | |||
|  | 				if ((gesture.pickedUIElement == gameObject || gesture.pickedUIElement.transform.IsChildOf( transform))){ | |||
|  | 					onTap.Invoke( gesture); | |||
|  | 				} | |||
|  | 			} | |||
|  | 		} | |||
|  | 		else{ | |||
|  | 			if ((!enablePickOverUI && gesture.pickedUIElement == null) || enablePickOverUI){ | |||
|  | 				if (EasyTouch.GetGameObjectAt( gesture.position,is2Finger) == gameObject){ | |||
|  | 					onTap.Invoke( gesture); | |||
|  | 				} | |||
|  | 			} | |||
|  | 		} | |||
|  | 	} | |||
|  | } | |||
|  | } |