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