You've already forked taptap2024_GJ_chidouren
init
This commit is contained in:
@@ -0,0 +1,525 @@
|
||||
/***********************************************
|
||||
EasyTouch V
|
||||
Copyright © 2014-2015 The Hedgehog Team
|
||||
http://www.thehedgehogteam.com/Forum/
|
||||
|
||||
The.Hedgehog.Team@gmail.com
|
||||
|
||||
**********************************************/
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
|
||||
|
||||
namespace HedgehogTeam.EasyTouch{
|
||||
[AddComponentMenu("EasyTouch/Trigger")]
|
||||
[System.Serializable]
|
||||
public class EasyTouchTrigger : MonoBehaviour {
|
||||
|
||||
public enum ETTParameter{ None,Gesture, Finger_Id,Touch_Count, Start_Position, Position, Delta_Position, Swipe_Type, Swipe_Length, Swipe_Vector,Delta_Pinch, Twist_Anlge, ActionTime, DeltaTime, PickedObject, PickedUIElement }
|
||||
public enum ETTType {Object3D,UI};
|
||||
|
||||
[System.Serializable]
|
||||
public class EasyTouchReceiver{
|
||||
public bool enable;
|
||||
public ETTType triggerType;
|
||||
public string name;
|
||||
public bool restricted;
|
||||
public GameObject gameObject;
|
||||
public bool otherReceiver;
|
||||
public GameObject gameObjectReceiver;
|
||||
public EasyTouch.EvtType eventName;
|
||||
public string methodName;
|
||||
public ETTParameter parameter;
|
||||
}
|
||||
|
||||
[SerializeField]
|
||||
public List<EasyTouchReceiver> receivers = new List<EasyTouchReceiver>();
|
||||
|
||||
#region Monobehaviour Callback
|
||||
void Start(){
|
||||
EasyTouch.SetEnableAutoSelect( true);
|
||||
|
||||
}
|
||||
|
||||
void OnEnable(){
|
||||
SubscribeEasyTouchEvent();
|
||||
}
|
||||
|
||||
void OnDisable(){
|
||||
UnsubscribeEasyTouchEvent();
|
||||
}
|
||||
|
||||
void OnDestroy(){
|
||||
UnsubscribeEasyTouchEvent();
|
||||
}
|
||||
|
||||
private void SubscribeEasyTouchEvent(){
|
||||
|
||||
// Touch
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_Cancel))
|
||||
EasyTouch.On_Cancel += On_Cancel;
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_TouchStart))
|
||||
EasyTouch.On_TouchStart += On_TouchStart;
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_TouchDown))
|
||||
EasyTouch.On_TouchDown += On_TouchDown;
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_TouchUp))
|
||||
EasyTouch.On_TouchUp += On_TouchUp;
|
||||
|
||||
// Tap & long tap
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_SimpleTap))
|
||||
EasyTouch.On_SimpleTap += On_SimpleTap;
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_LongTapStart))
|
||||
EasyTouch.On_LongTapStart += On_LongTapStart;
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_LongTap))
|
||||
EasyTouch.On_LongTap += On_LongTap;
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_LongTapEnd))
|
||||
EasyTouch.On_LongTapEnd += On_LongTapEnd;
|
||||
|
||||
// Double tap
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_DoubleTap))
|
||||
EasyTouch.On_DoubleTap += On_DoubleTap;
|
||||
|
||||
// Drag
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_DragStart))
|
||||
EasyTouch.On_DragStart += On_DragStart;
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_Drag))
|
||||
EasyTouch.On_Drag += On_Drag;
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_DragEnd))
|
||||
EasyTouch.On_DragEnd += On_DragEnd;
|
||||
|
||||
// Swipe
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_SwipeStart))
|
||||
EasyTouch.On_SwipeStart += On_SwipeStart;
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_Swipe))
|
||||
EasyTouch.On_Swipe += On_Swipe;
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_SwipeEnd))
|
||||
EasyTouch.On_SwipeEnd += On_SwipeEnd;
|
||||
|
||||
// Tap 2 fingers
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_TouchStart2Fingers))
|
||||
EasyTouch.On_TouchStart2Fingers += On_TouchStart2Fingers;
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_TouchDown2Fingers))
|
||||
EasyTouch.On_TouchDown2Fingers += On_TouchDown2Fingers;
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_TouchUp2Fingers))
|
||||
EasyTouch.On_TouchUp2Fingers += On_TouchUp2Fingers;
|
||||
|
||||
// Tap & Long tap 2 fingers
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_SimpleTap2Fingers))
|
||||
EasyTouch.On_SimpleTap2Fingers+= On_SimpleTap2Fingers;
|
||||
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_LongTapStart2Fingers))
|
||||
EasyTouch.On_LongTapStart2Fingers += On_LongTapStart2Fingers;
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_LongTap2Fingers))
|
||||
EasyTouch.On_LongTap2Fingers += On_LongTap2Fingers;
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_LongTapEnd2Fingers))
|
||||
EasyTouch.On_LongTapEnd2Fingers += On_LongTapEnd2Fingers;
|
||||
|
||||
// double tap fingers
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_DoubleTap2Fingers))
|
||||
EasyTouch.On_DoubleTap2Fingers += On_DoubleTap2Fingers;
|
||||
|
||||
// Swipe
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_SwipeStart2Fingers))
|
||||
EasyTouch.On_SwipeStart2Fingers += On_SwipeStart2Fingers;
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_Swipe2Fingers))
|
||||
EasyTouch.On_Swipe2Fingers += On_Swipe2Fingers;
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_SwipeEnd2Fingers))
|
||||
EasyTouch.On_SwipeEnd2Fingers += On_SwipeEnd2Fingers;
|
||||
|
||||
// Drag
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_DragStart2Fingers))
|
||||
EasyTouch.On_DragStart2Fingers += On_DragStart2Fingers;
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_Drag2Fingers))
|
||||
EasyTouch.On_Drag2Fingers += On_Drag2Fingers;
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_DragEnd2Fingers))
|
||||
EasyTouch.On_DragEnd2Fingers += On_DragEnd2Fingers;
|
||||
|
||||
// Pinch
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_Pinch))
|
||||
EasyTouch.On_Pinch += On_Pinch;
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_PinchIn))
|
||||
EasyTouch.On_PinchIn += On_PinchIn;
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_PinchOut))
|
||||
EasyTouch.On_PinchOut += On_PinchOut;
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_PinchEnd))
|
||||
EasyTouch.On_PinchEnd += On_PinchEnd;
|
||||
|
||||
// Twist
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_Twist))
|
||||
EasyTouch.On_Twist += On_Twist;
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_TwistEnd))
|
||||
EasyTouch.On_TwistEnd += On_TwistEnd;
|
||||
|
||||
// Unity UI
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_OverUIElement))
|
||||
EasyTouch.On_OverUIElement += On_OverUIElement;
|
||||
|
||||
if (IsRecevier4( EasyTouch.EvtType.On_UIElementTouchUp))
|
||||
EasyTouch.On_UIElementTouchUp += On_UIElementTouchUp;
|
||||
|
||||
}
|
||||
|
||||
private void UnsubscribeEasyTouchEvent(){
|
||||
EasyTouch.On_Cancel -= On_Cancel;
|
||||
EasyTouch.On_TouchStart -= On_TouchStart;
|
||||
EasyTouch.On_TouchDown -= On_TouchDown;
|
||||
EasyTouch.On_TouchUp -= On_TouchUp;
|
||||
|
||||
EasyTouch.On_SimpleTap -= On_SimpleTap;
|
||||
EasyTouch.On_LongTapStart -= On_LongTapStart;
|
||||
EasyTouch.On_LongTap -= On_LongTap;
|
||||
EasyTouch.On_LongTapEnd -= On_LongTapEnd;
|
||||
|
||||
EasyTouch.On_DoubleTap -= On_DoubleTap;
|
||||
|
||||
EasyTouch.On_DragStart -= On_DragStart;
|
||||
EasyTouch.On_Drag -= On_Drag;
|
||||
EasyTouch.On_DragEnd -= On_DragEnd;
|
||||
|
||||
EasyTouch.On_SwipeStart -= On_SwipeStart;
|
||||
EasyTouch.On_Swipe -= On_Swipe;
|
||||
EasyTouch.On_SwipeEnd -= On_SwipeEnd;
|
||||
|
||||
EasyTouch.On_TouchStart2Fingers -= On_TouchStart2Fingers;
|
||||
EasyTouch.On_TouchDown2Fingers -= On_TouchDown2Fingers;
|
||||
EasyTouch.On_TouchUp2Fingers -= On_TouchUp2Fingers;
|
||||
|
||||
EasyTouch.On_SimpleTap2Fingers-= On_SimpleTap2Fingers;
|
||||
EasyTouch.On_LongTapStart2Fingers -= On_LongTapStart2Fingers;
|
||||
EasyTouch.On_LongTap2Fingers -= On_LongTap2Fingers;
|
||||
EasyTouch.On_LongTapEnd2Fingers -= On_LongTapEnd2Fingers;
|
||||
|
||||
EasyTouch.On_DoubleTap2Fingers -= On_DoubleTap2Fingers;
|
||||
|
||||
EasyTouch.On_SwipeStart2Fingers -= On_SwipeStart2Fingers;
|
||||
EasyTouch.On_Swipe2Fingers -= On_Swipe2Fingers;
|
||||
EasyTouch.On_SwipeEnd2Fingers -= On_SwipeEnd2Fingers;
|
||||
|
||||
EasyTouch.On_DragStart2Fingers -= On_DragStart2Fingers;
|
||||
EasyTouch.On_Drag2Fingers -= On_Drag2Fingers;
|
||||
EasyTouch.On_DragEnd2Fingers -= On_DragEnd2Fingers;
|
||||
|
||||
EasyTouch.On_Pinch -= On_Pinch;
|
||||
EasyTouch.On_PinchIn -= On_PinchIn;
|
||||
EasyTouch.On_PinchOut -= On_PinchOut;
|
||||
EasyTouch.On_PinchEnd -= On_PinchEnd;
|
||||
|
||||
EasyTouch.On_Twist -= On_Twist;
|
||||
EasyTouch.On_TwistEnd -= On_TwistEnd;
|
||||
|
||||
EasyTouch.On_OverUIElement += On_OverUIElement;
|
||||
EasyTouch.On_UIElementTouchUp += On_UIElementTouchUp;
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region One Finger EasyTouch Callback
|
||||
|
||||
void On_TouchStart (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_TouchStart,gesture);
|
||||
}
|
||||
|
||||
void On_TouchDown (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_TouchDown,gesture);
|
||||
}
|
||||
|
||||
void On_TouchUp (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_TouchUp,gesture);
|
||||
}
|
||||
|
||||
void On_SimpleTap (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_SimpleTap,gesture);
|
||||
}
|
||||
|
||||
void On_DoubleTap (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_DoubleTap,gesture);
|
||||
}
|
||||
|
||||
void On_LongTapStart (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_LongTapStart,gesture);
|
||||
}
|
||||
|
||||
void On_LongTap (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_LongTap,gesture);
|
||||
}
|
||||
|
||||
void On_LongTapEnd (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_LongTapEnd,gesture);
|
||||
}
|
||||
|
||||
void On_SwipeStart (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_SwipeStart,gesture);
|
||||
}
|
||||
|
||||
void On_Swipe (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_Swipe,gesture);
|
||||
}
|
||||
|
||||
void On_SwipeEnd (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_SwipeEnd,gesture);
|
||||
}
|
||||
|
||||
void On_DragStart (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_DragStart,gesture);
|
||||
}
|
||||
|
||||
void On_Drag (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_Drag,gesture);
|
||||
}
|
||||
|
||||
void On_DragEnd (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_DragEnd,gesture);
|
||||
}
|
||||
|
||||
void On_Cancel (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_Cancel,gesture);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Two Finger EasyTouch Callback
|
||||
void On_TouchStart2Fingers (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_TouchStart2Fingers,gesture);
|
||||
}
|
||||
|
||||
void On_TouchDown2Fingers (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_TouchDown2Fingers,gesture);
|
||||
}
|
||||
|
||||
void On_TouchUp2Fingers (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_TouchUp2Fingers,gesture);
|
||||
}
|
||||
|
||||
void On_LongTapStart2Fingers (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_LongTapStart2Fingers,gesture);
|
||||
}
|
||||
|
||||
void On_LongTap2Fingers (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_LongTap2Fingers,gesture);
|
||||
}
|
||||
|
||||
void On_LongTapEnd2Fingers (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_LongTapEnd2Fingers,gesture);
|
||||
}
|
||||
|
||||
void On_DragStart2Fingers (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_DragStart2Fingers,gesture);
|
||||
}
|
||||
|
||||
void On_Drag2Fingers (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_Drag2Fingers,gesture);
|
||||
}
|
||||
|
||||
void On_DragEnd2Fingers (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_DragEnd2Fingers,gesture);
|
||||
}
|
||||
|
||||
void On_SwipeStart2Fingers (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_SwipeStart2Fingers,gesture);
|
||||
}
|
||||
|
||||
void On_Swipe2Fingers (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_Swipe2Fingers,gesture);
|
||||
}
|
||||
|
||||
void On_SwipeEnd2Fingers (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_SwipeEnd2Fingers,gesture);
|
||||
}
|
||||
|
||||
void On_Twist (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_Twist,gesture);
|
||||
}
|
||||
|
||||
void On_TwistEnd (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_TwistEnd,gesture);
|
||||
}
|
||||
|
||||
void On_Pinch (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_Pinch,gesture);
|
||||
}
|
||||
|
||||
void On_PinchOut (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_PinchOut,gesture);
|
||||
}
|
||||
|
||||
void On_PinchIn (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_PinchIn,gesture);
|
||||
}
|
||||
|
||||
void On_PinchEnd (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_PinchEnd,gesture);
|
||||
}
|
||||
|
||||
void On_SimpleTap2Fingers (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_SimpleTap2Fingers,gesture);
|
||||
|
||||
}
|
||||
|
||||
void On_DoubleTap2Fingers (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_DoubleTap2Fingers,gesture);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region UI Event
|
||||
void On_UIElementTouchUp (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_UIElementTouchUp,gesture);
|
||||
}
|
||||
|
||||
void On_OverUIElement (Gesture gesture){
|
||||
TriggerScheduler(EasyTouch.EvtType.On_OverUIElement,gesture);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Public Method
|
||||
public void AddTrigger(EasyTouch.EvtType ev){
|
||||
EasyTouchReceiver r = new EasyTouchReceiver();
|
||||
r.enable = true;
|
||||
r.restricted = true;
|
||||
r.eventName = ev;
|
||||
r.gameObject =null;
|
||||
r.otherReceiver = false;
|
||||
r.name = "New trigger";
|
||||
receivers.Add( r );
|
||||
|
||||
if (Application.isPlaying){
|
||||
UnsubscribeEasyTouchEvent();
|
||||
SubscribeEasyTouchEvent();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public bool SetTriggerEnable(string triggerName,bool value){
|
||||
|
||||
EasyTouchReceiver r =GetTrigger( triggerName);
|
||||
|
||||
if (r!=null){
|
||||
r.enable = value;
|
||||
return true;
|
||||
}
|
||||
else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public bool GetTriggerEnable(string triggerName){
|
||||
|
||||
EasyTouchReceiver r =GetTrigger( triggerName);
|
||||
|
||||
if (r!=null){
|
||||
return r.enable;
|
||||
}
|
||||
else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Private Method
|
||||
private void TriggerScheduler(EasyTouch.EvtType evnt, Gesture gesture){
|
||||
|
||||
foreach( EasyTouchReceiver receiver in receivers){
|
||||
|
||||
if (receiver.enable && receiver.eventName == evnt){
|
||||
if (
|
||||
(receiver.restricted && ( (gesture.pickedObject == gameObject && receiver.triggerType == ETTType.Object3D ) || ( gesture.pickedUIElement == gameObject && receiver.triggerType == ETTType.UI ) ))
|
||||
|
||||
|| (!receiver.restricted && (receiver.gameObject == null || ((receiver.gameObject == gesture.pickedObject && receiver.triggerType == ETTType.Object3D ) || ( gesture.pickedUIElement == receiver.gameObject && receiver.triggerType == ETTType.UI ) ) ))
|
||||
|
||||
){
|
||||
|
||||
GameObject sender = gameObject;
|
||||
if (receiver.otherReceiver && receiver.gameObjectReceiver!=null){
|
||||
sender = receiver.gameObjectReceiver;
|
||||
}
|
||||
switch (receiver.parameter){
|
||||
case ETTParameter.None:
|
||||
sender.SendMessage( receiver.methodName,SendMessageOptions.DontRequireReceiver);
|
||||
break;
|
||||
case ETTParameter.ActionTime:
|
||||
sender.SendMessage( receiver.methodName,gesture.actionTime,SendMessageOptions.DontRequireReceiver);
|
||||
break;
|
||||
case ETTParameter.Delta_Pinch:
|
||||
sender.SendMessage( receiver.methodName,gesture.deltaPinch,SendMessageOptions.DontRequireReceiver);
|
||||
break;
|
||||
case ETTParameter.Delta_Position:
|
||||
sender.SendMessage( receiver.methodName,gesture.deltaPosition,SendMessageOptions.DontRequireReceiver);
|
||||
break;
|
||||
case ETTParameter.DeltaTime:
|
||||
sender.SendMessage( receiver.methodName,gesture.deltaTime,SendMessageOptions.DontRequireReceiver);
|
||||
break;
|
||||
case ETTParameter.Finger_Id:
|
||||
sender.SendMessage( receiver.methodName,gesture.fingerIndex,SendMessageOptions.DontRequireReceiver);
|
||||
break;
|
||||
case ETTParameter.Gesture:
|
||||
sender.SendMessage( receiver.methodName,gesture,SendMessageOptions.DontRequireReceiver);
|
||||
break;
|
||||
case ETTParameter.PickedObject:
|
||||
if (gesture.pickedObject!=null){
|
||||
sender.SendMessage( receiver.methodName,gesture.pickedObject,SendMessageOptions.DontRequireReceiver);
|
||||
}
|
||||
break;
|
||||
case ETTParameter.PickedUIElement:
|
||||
if (gesture.pickedUIElement!=null){
|
||||
sender.SendMessage( receiver.methodName,gesture.pickedObject,SendMessageOptions.DontRequireReceiver);
|
||||
}
|
||||
break;
|
||||
case ETTParameter.Position:
|
||||
sender.SendMessage( receiver.methodName,gesture.position,SendMessageOptions.DontRequireReceiver);
|
||||
break;
|
||||
case ETTParameter.Start_Position:
|
||||
sender.SendMessage( receiver.methodName,gesture.startPosition,SendMessageOptions.DontRequireReceiver);
|
||||
break;
|
||||
case ETTParameter.Swipe_Length:
|
||||
sender.SendMessage( receiver.methodName,gesture.swipeLength,SendMessageOptions.DontRequireReceiver);
|
||||
break;
|
||||
case ETTParameter.Swipe_Type:
|
||||
sender.SendMessage( receiver.methodName,gesture.swipe,SendMessageOptions.DontRequireReceiver);
|
||||
break;
|
||||
case ETTParameter.Swipe_Vector:
|
||||
sender.SendMessage( receiver.methodName,gesture.swipeVector,SendMessageOptions.DontRequireReceiver);
|
||||
break;
|
||||
case ETTParameter.Touch_Count:
|
||||
sender.SendMessage( receiver.methodName,gesture.touchCount,SendMessageOptions.DontRequireReceiver);
|
||||
break;
|
||||
case ETTParameter.Twist_Anlge:
|
||||
sender.SendMessage( receiver.methodName,gesture.twistAngle,SendMessageOptions.DontRequireReceiver);
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private bool IsRecevier4(EasyTouch.EvtType evnt){
|
||||
|
||||
int result = receivers.FindIndex(
|
||||
delegate(EasyTouchTrigger.EasyTouchReceiver e){
|
||||
return e.eventName == evnt;
|
||||
}
|
||||
);
|
||||
|
||||
if (result>-1){
|
||||
return true;
|
||||
}
|
||||
else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private EasyTouchReceiver GetTrigger(string triggerName){
|
||||
EasyTouchTrigger.EasyTouchReceiver t = receivers.Find(
|
||||
delegate(EasyTouchTrigger.EasyTouchReceiver n){
|
||||
return n.name == triggerName;
|
||||
}
|
||||
);
|
||||
|
||||
return t;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a8c8100645ce3444a84b9f5e0164ad76
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {fileID: 2800000, guid: 61719e5cd5d2e754280e0dd736d759ec, type: 3}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
258
Assets/EasyTouchBundle/EasyTouch/Plugins/Components/QuickBase.cs
Normal file
258
Assets/EasyTouchBundle/EasyTouch/Plugins/Components/QuickBase.cs
Normal file
@@ -0,0 +1,258 @@
|
||||
/***********************************************
|
||||
EasyTouch V
|
||||
Copyright © 2014-2015 The Hedgehog Team
|
||||
http://www.thehedgehogteam.com/Forum/
|
||||
|
||||
The.Hedgehog.Team@gmail.com
|
||||
|
||||
**********************************************/
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
|
||||
namespace HedgehogTeam.EasyTouch{
|
||||
public class QuickBase : MonoBehaviour {
|
||||
|
||||
#region enumeration
|
||||
protected enum GameObjectType { Auto,Obj_3D,Obj_2D,UI};
|
||||
|
||||
public enum DirectAction {None,Rotate, RotateLocal,Translate, TranslateLocal, Scale};
|
||||
public enum AffectedAxesAction {X,Y,Z,XY,XZ,YZ,XYZ};
|
||||
#endregion
|
||||
|
||||
#region Members
|
||||
public string quickActionName;
|
||||
|
||||
// Touch management
|
||||
public bool isMultiTouch = false;
|
||||
public bool is2Finger = false;
|
||||
public bool isOnTouch=false;
|
||||
public bool enablePickOverUI = false;
|
||||
public bool resetPhysic = false;
|
||||
|
||||
// simple Action
|
||||
public DirectAction directAction;
|
||||
public AffectedAxesAction axesAction;
|
||||
public float sensibility = 1;
|
||||
public CharacterController directCharacterController;
|
||||
public bool inverseAxisValue = false;
|
||||
|
||||
|
||||
protected Rigidbody cachedRigidBody;
|
||||
protected bool isKinematic;
|
||||
|
||||
protected Rigidbody2D cachedRigidBody2D;
|
||||
protected bool isKinematic2D;
|
||||
|
||||
// internal management
|
||||
protected GameObjectType realType;
|
||||
protected int fingerIndex =-1;
|
||||
#endregion
|
||||
|
||||
#region Monobehavior Callback
|
||||
void Awake(){
|
||||
cachedRigidBody = GetComponent<Rigidbody>();
|
||||
if (cachedRigidBody){
|
||||
isKinematic = cachedRigidBody.isKinematic;
|
||||
}
|
||||
|
||||
cachedRigidBody2D = GetComponent<Rigidbody2D>();
|
||||
if (cachedRigidBody2D){
|
||||
isKinematic2D = cachedRigidBody2D.isKinematic;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public virtual void Start(){
|
||||
|
||||
EasyTouch.SetEnableAutoSelect( true);
|
||||
|
||||
realType = GameObjectType.Obj_3D;
|
||||
|
||||
if (GetComponent<Collider>()){
|
||||
realType = GameObjectType.Obj_3D;
|
||||
}
|
||||
else if (GetComponent<Collider2D>()){
|
||||
realType = GameObjectType.Obj_2D;
|
||||
}
|
||||
else if (GetComponent<CanvasRenderer>()){
|
||||
realType = GameObjectType.UI;
|
||||
}
|
||||
|
||||
|
||||
switch (realType){
|
||||
|
||||
case GameObjectType.Obj_3D:
|
||||
LayerMask mask = EasyTouch.Get3DPickableLayer();
|
||||
mask = mask | 1<<gameObject.layer;
|
||||
EasyTouch.Set3DPickableLayer( mask);
|
||||
break;
|
||||
//2D
|
||||
case GameObjectType.Obj_2D:
|
||||
EasyTouch.SetEnable2DCollider( true);
|
||||
mask = EasyTouch.Get2DPickableLayer();
|
||||
mask = mask | 1<<gameObject.layer;
|
||||
EasyTouch.Set2DPickableLayer( mask);
|
||||
break;
|
||||
// UI
|
||||
case GameObjectType.UI:
|
||||
EasyTouch.instance.enableUIMode = true;
|
||||
EasyTouch.SetUICompatibily( false);
|
||||
break;
|
||||
}
|
||||
|
||||
if (enablePickOverUI){
|
||||
EasyTouch.instance.enableUIMode = true;
|
||||
EasyTouch.SetUICompatibily( false);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public virtual void OnEnable(){
|
||||
//QuickTouchManager.instance.RegisterQuickAction( this);
|
||||
}
|
||||
|
||||
public virtual void OnDisable(){
|
||||
//if (QuickTouchManager._instance){
|
||||
// QuickTouchManager.instance.UnregisterQuickAction( this);
|
||||
//}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Protected Methods
|
||||
protected Vector3 GetInfluencedAxis(){
|
||||
|
||||
Vector3 axis = Vector3.zero;
|
||||
|
||||
switch(axesAction){
|
||||
case AffectedAxesAction.X:
|
||||
axis = new Vector3(1,0,0);
|
||||
break;
|
||||
case AffectedAxesAction.Y:
|
||||
axis = new Vector3(0,1,0);
|
||||
break;
|
||||
case AffectedAxesAction.Z:
|
||||
axis = new Vector3(0,0,1);
|
||||
break;
|
||||
case AffectedAxesAction.XY:
|
||||
axis = new Vector3(1,1,0);
|
||||
break;
|
||||
case AffectedAxesAction.XYZ:
|
||||
axis = new Vector3(1,1,1);
|
||||
break;
|
||||
case AffectedAxesAction.XZ:
|
||||
axis = new Vector3(1,0,1);
|
||||
break;
|
||||
case AffectedAxesAction.YZ:
|
||||
axis = new Vector3(0,1,1);
|
||||
break;
|
||||
}
|
||||
|
||||
return axis;
|
||||
}
|
||||
|
||||
protected void DoDirectAction(float value){
|
||||
|
||||
|
||||
Vector3 localAxis = GetInfluencedAxis();
|
||||
|
||||
switch ( directAction){
|
||||
// Rotate
|
||||
case DirectAction.Rotate:
|
||||
transform.Rotate( localAxis * value, Space.World);
|
||||
break;
|
||||
// Rotate Local
|
||||
case DirectAction.RotateLocal:
|
||||
transform.Rotate( localAxis * value,Space.Self);
|
||||
break;
|
||||
// Translate
|
||||
case DirectAction.Translate:
|
||||
if ( directCharacterController==null){
|
||||
transform.Translate(localAxis * value,Space.World);
|
||||
}
|
||||
else{
|
||||
Vector3 direction = localAxis * value;
|
||||
directCharacterController.Move( direction );
|
||||
}
|
||||
break;
|
||||
|
||||
// Translate local
|
||||
case DirectAction.TranslateLocal:
|
||||
if ( directCharacterController==null){
|
||||
transform.Translate(localAxis * value,Space.Self);
|
||||
}
|
||||
else{
|
||||
Vector3 direction = directCharacterController.transform.TransformDirection(localAxis) * value;
|
||||
directCharacterController.Move( direction );
|
||||
}
|
||||
break;
|
||||
// Scale
|
||||
case DirectAction.Scale:
|
||||
transform.localScale += localAxis * value;
|
||||
break;
|
||||
|
||||
/*
|
||||
// Force
|
||||
case DirectAction.Force:
|
||||
if (directRigidBody!=null){
|
||||
directRigidBody.AddForce( localAxis * axisValue * speed);
|
||||
}
|
||||
break;
|
||||
// Relative force
|
||||
case DirectAction.RelativeForce:
|
||||
if (directRigidBody!=null){
|
||||
directRigidBody.AddRelativeForce( localAxis * axisValue * speed);
|
||||
}
|
||||
break;
|
||||
// Torque
|
||||
case DirectAction.Torque:
|
||||
if (directRigidBody!=null){
|
||||
directRigidBody.AddTorque(localAxis * axisValue * speed);
|
||||
}
|
||||
|
||||
break;
|
||||
// Relative torque
|
||||
case DirectAction.RelativeTorque:
|
||||
if (directRigidBody!=null){
|
||||
directRigidBody.AddRelativeTorque(localAxis * axisValue * speed);
|
||||
}
|
||||
break;*/
|
||||
}
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Public Methods
|
||||
public void EnabledQuickComponent(string quickActionName){
|
||||
|
||||
QuickBase[] quickBases = GetComponents<QuickBase>();
|
||||
foreach( QuickBase qb in quickBases){
|
||||
if (qb.quickActionName == quickActionName){
|
||||
qb.enabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void DisabledQuickComponent(string quickActionName){
|
||||
|
||||
QuickBase[] quickBases = GetComponents<QuickBase>();
|
||||
foreach( QuickBase qb in quickBases){
|
||||
if (qb.quickActionName == quickActionName){
|
||||
qb.enabled = false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void DisabledAllSwipeExcepted(string quickActionName){
|
||||
|
||||
QuickSwipe[] swipes = FindObjectsOfType(typeof(QuickSwipe)) as QuickSwipe[];
|
||||
foreach( QuickSwipe swipe in swipes){
|
||||
if (swipe.quickActionName != quickActionName || ( swipe.quickActionName == quickActionName && swipe.gameObject != gameObject)){
|
||||
swipe.enabled = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7d28476965576224d90d72d674d604cf
|
||||
timeCreated: 1450162043
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
243
Assets/EasyTouchBundle/EasyTouch/Plugins/Components/QuickDrag.cs
Normal file
243
Assets/EasyTouchBundle/EasyTouch/Plugins/Components/QuickDrag.cs
Normal file
@@ -0,0 +1,243 @@
|
||||
/***********************************************
|
||||
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;
|
||||
using HedgehogTeam.EasyTouch;
|
||||
|
||||
namespace HedgehogTeam.EasyTouch{
|
||||
[AddComponentMenu("EasyTouch/Quick Drag")]
|
||||
public class QuickDrag: QuickBase {
|
||||
|
||||
#region Events
|
||||
[System.Serializable] public class OnDragStart : UnityEvent<Gesture>{}
|
||||
[System.Serializable] public class OnDrag : UnityEvent<Gesture>{}
|
||||
[System.Serializable] public class OnDragEnd : UnityEvent<Gesture>{}
|
||||
|
||||
[SerializeField]
|
||||
public OnDragStart onDragStart;
|
||||
[SerializeField]
|
||||
public OnDrag onDrag;
|
||||
[SerializeField]
|
||||
public OnDragEnd onDragEnd;
|
||||
#endregion
|
||||
|
||||
#region Members
|
||||
public bool isStopOncollisionEnter = false;
|
||||
|
||||
private Vector3 deltaPosition;
|
||||
private bool isOnDrag = false;
|
||||
private Gesture lastGesture;
|
||||
#endregion
|
||||
|
||||
#region Monobehaviour CallBack
|
||||
public QuickDrag(){
|
||||
quickActionName = "QuickDrag"+ System.Guid.NewGuid().ToString().Substring(0,7);
|
||||
axesAction = AffectedAxesAction.XY;
|
||||
}
|
||||
|
||||
public override void OnEnable(){
|
||||
base.OnEnable();
|
||||
EasyTouch.On_TouchStart += On_TouchStart;
|
||||
EasyTouch.On_TouchDown += On_TouchDown;
|
||||
EasyTouch.On_TouchUp += On_TouchUp;
|
||||
EasyTouch.On_Drag += On_Drag;
|
||||
EasyTouch.On_DragStart += On_DragStart;
|
||||
EasyTouch.On_DragEnd += On_DragEnd;
|
||||
}
|
||||
|
||||
public override void OnDisable(){
|
||||
base.OnDisable();
|
||||
UnsubscribeEvent();
|
||||
}
|
||||
|
||||
void OnDestroy(){
|
||||
UnsubscribeEvent();
|
||||
}
|
||||
|
||||
void UnsubscribeEvent(){
|
||||
EasyTouch.On_TouchStart -= On_TouchStart;
|
||||
EasyTouch.On_TouchDown -= On_TouchDown;
|
||||
EasyTouch.On_TouchUp -= On_TouchUp;
|
||||
EasyTouch.On_Drag -= On_Drag;
|
||||
EasyTouch.On_DragStart -= On_DragStart;
|
||||
EasyTouch.On_DragEnd -= On_DragEnd;
|
||||
}
|
||||
|
||||
void OnCollisionEnter(){
|
||||
if (isStopOncollisionEnter && isOnDrag){
|
||||
StopDrag();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region EasyTouch Event
|
||||
void On_TouchStart (Gesture gesture){
|
||||
|
||||
if ( realType == GameObjectType.UI){
|
||||
if (gesture.isOverGui ){
|
||||
if ((gesture.pickedUIElement == gameObject || gesture.pickedUIElement.transform.IsChildOf( transform)) && fingerIndex==-1){
|
||||
|
||||
fingerIndex = gesture.fingerIndex;
|
||||
transform.SetAsLastSibling();
|
||||
onDragStart.Invoke(gesture);
|
||||
|
||||
isOnDrag = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void On_TouchDown (Gesture gesture){
|
||||
|
||||
if (isOnDrag && fingerIndex == gesture.fingerIndex && realType == GameObjectType.UI){
|
||||
if (gesture.isOverGui ){
|
||||
if ((gesture.pickedUIElement == gameObject || gesture.pickedUIElement.transform.IsChildOf( transform)) ){
|
||||
transform.position += (Vector3)gesture.deltaPosition;
|
||||
|
||||
if (gesture.deltaPosition != Vector2.zero){
|
||||
onDrag.Invoke(gesture);
|
||||
}
|
||||
lastGesture = gesture;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void On_TouchUp (Gesture gesture){
|
||||
|
||||
if (fingerIndex == gesture.fingerIndex && realType == GameObjectType.UI){
|
||||
lastGesture = gesture;
|
||||
StopDrag();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// At the drag beginning
|
||||
void On_DragStart( Gesture gesture){
|
||||
|
||||
if (realType != GameObjectType.UI){
|
||||
|
||||
if ((!enablePickOverUI && gesture.pickedUIElement == null) || enablePickOverUI){
|
||||
if (gesture.pickedObject == gameObject && !isOnDrag){
|
||||
|
||||
isOnDrag = true;
|
||||
|
||||
fingerIndex = gesture.fingerIndex;
|
||||
|
||||
// the world coordinate from touch
|
||||
Vector3 position = gesture.GetTouchToWorldPoint(gesture.pickedObject.transform.position);
|
||||
deltaPosition = position - transform.position;
|
||||
|
||||
//
|
||||
if (resetPhysic){
|
||||
if (cachedRigidBody){
|
||||
cachedRigidBody.isKinematic = true;
|
||||
}
|
||||
|
||||
if (cachedRigidBody2D){
|
||||
cachedRigidBody2D.isKinematic = true;
|
||||
}
|
||||
}
|
||||
|
||||
onDragStart.Invoke(gesture);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// During the drag
|
||||
void On_Drag(Gesture gesture){
|
||||
|
||||
if (fingerIndex == gesture.fingerIndex){
|
||||
if (realType == GameObjectType.Obj_2D || realType == GameObjectType.Obj_3D){
|
||||
|
||||
// Verification that the action on the object
|
||||
if (gesture.pickedObject == gameObject && fingerIndex == gesture.fingerIndex){
|
||||
|
||||
// the world coordinate from touch
|
||||
Vector3 position = gesture.GetTouchToWorldPoint(gesture.pickedObject.transform.position)-deltaPosition;
|
||||
transform.position = GetPositionAxes( position);
|
||||
|
||||
if (gesture.deltaPosition != Vector2.zero){
|
||||
onDrag.Invoke(gesture);
|
||||
|
||||
}
|
||||
lastGesture = gesture;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// End of drag
|
||||
void On_DragEnd(Gesture gesture){
|
||||
|
||||
if (fingerIndex == gesture.fingerIndex){
|
||||
lastGesture = gesture;
|
||||
StopDrag();
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Private Method
|
||||
private Vector3 GetPositionAxes(Vector3 position){
|
||||
|
||||
Vector3 axes = position;
|
||||
|
||||
switch (axesAction){
|
||||
case AffectedAxesAction.X:
|
||||
axes = new Vector3(position.x,transform.position.y,transform.position.z);
|
||||
break;
|
||||
case AffectedAxesAction.Y:
|
||||
axes = new Vector3(transform.position.x,position.y,transform.position.z);
|
||||
break;
|
||||
case AffectedAxesAction.Z:
|
||||
axes = new Vector3(transform.position.x,transform.position.y,position.z);
|
||||
break;
|
||||
case AffectedAxesAction.XY:
|
||||
axes = new Vector3(position.x,position.y,transform.position.z);
|
||||
break;
|
||||
case AffectedAxesAction.XZ:
|
||||
axes = new Vector3(position.x,transform.position.y,position.z);
|
||||
break;
|
||||
case AffectedAxesAction.YZ:
|
||||
axes = new Vector3(transform.position.x,position.y,position.z);
|
||||
break;
|
||||
}
|
||||
|
||||
return axes;
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Public Method
|
||||
public void StopDrag(){
|
||||
|
||||
fingerIndex = -1;
|
||||
|
||||
if (resetPhysic){
|
||||
if (cachedRigidBody){
|
||||
cachedRigidBody.isKinematic = isKinematic;
|
||||
}
|
||||
|
||||
if (cachedRigidBody2D){
|
||||
cachedRigidBody2D.isKinematic = isKinematic2D;
|
||||
}
|
||||
}
|
||||
isOnDrag = false;
|
||||
|
||||
onDragEnd.Invoke(lastGesture);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7961076ef9aef0341b2c9f8a38bfbc71
|
||||
timeCreated: 1452768029
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {fileID: 2800000, guid: 61719e5cd5d2e754280e0dd736d759ec, type: 3}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,142 @@
|
||||
/***********************************************
|
||||
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 Enter-Over-Exit")]
|
||||
public class QuickEnterOverExist : QuickBase {
|
||||
|
||||
#region Event
|
||||
[System.Serializable] public class OnTouchEnter : UnityEvent<Gesture>{}
|
||||
[System.Serializable] public class OnTouchOver : UnityEvent<Gesture>{}
|
||||
[System.Serializable] public class OnTouchExit : UnityEvent<Gesture>{}
|
||||
|
||||
[SerializeField]
|
||||
public OnTouchEnter onTouchEnter;
|
||||
[SerializeField]
|
||||
public OnTouchOver onTouchOver;
|
||||
[SerializeField]
|
||||
public OnTouchExit onTouchExit;
|
||||
#endregion
|
||||
|
||||
#region Members
|
||||
private bool[] fingerOver = new bool[100];
|
||||
#endregion
|
||||
|
||||
#region MonoBehaviour callback
|
||||
public QuickEnterOverExist(){
|
||||
quickActionName = "QuickEnterOverExit"+ System.Guid.NewGuid().ToString().Substring(0,7);
|
||||
}
|
||||
|
||||
void Awake(){
|
||||
|
||||
for (int i=0;i<100;i++){
|
||||
fingerOver[i] = false;
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnEnable(){
|
||||
base.OnEnable();
|
||||
EasyTouch.On_TouchDown += On_TouchDown;
|
||||
EasyTouch.On_TouchUp += On_TouchUp;
|
||||
}
|
||||
|
||||
public override void OnDisable(){
|
||||
base.OnDisable();
|
||||
UnsubscribeEvent();
|
||||
}
|
||||
|
||||
void OnDestroy(){
|
||||
UnsubscribeEvent();
|
||||
}
|
||||
|
||||
void UnsubscribeEvent(){
|
||||
EasyTouch.On_TouchDown -= On_TouchDown;
|
||||
EasyTouch.On_TouchUp -= On_TouchUp;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region EasyTouch Event
|
||||
void On_TouchDown (Gesture gesture){
|
||||
|
||||
if (realType != GameObjectType.UI){
|
||||
if ((!enablePickOverUI && gesture.GetCurrentFirstPickedUIElement() == null) || enablePickOverUI){
|
||||
|
||||
if ( gesture.GetCurrentPickedObject()== gameObject){
|
||||
if (!fingerOver[gesture.fingerIndex] && ((!isOnTouch && !isMultiTouch) || isMultiTouch)){
|
||||
fingerOver[gesture.fingerIndex] = true;
|
||||
onTouchEnter.Invoke( gesture);
|
||||
isOnTouch = true;
|
||||
}
|
||||
else if (fingerOver[gesture.fingerIndex]){
|
||||
onTouchOver.Invoke(gesture);
|
||||
}
|
||||
}
|
||||
else{
|
||||
if (fingerOver[gesture.fingerIndex]){
|
||||
fingerOver[gesture.fingerIndex] = false;
|
||||
onTouchExit.Invoke(gesture);
|
||||
if (!isMultiTouch){
|
||||
isOnTouch = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else{
|
||||
if ( gesture.GetCurrentPickedObject()== gameObject && (!enablePickOverUI && gesture.GetCurrentFirstPickedUIElement() != null)){
|
||||
if (fingerOver[gesture.fingerIndex]){
|
||||
fingerOver[gesture.fingerIndex] = false;
|
||||
onTouchExit.Invoke(gesture);
|
||||
if (!isMultiTouch){
|
||||
isOnTouch = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else{
|
||||
if ( gesture.GetCurrentFirstPickedUIElement()== gameObject){
|
||||
if (!fingerOver[gesture.fingerIndex] && ((!isOnTouch && !isMultiTouch) || isMultiTouch)){
|
||||
fingerOver[gesture.fingerIndex] = true;
|
||||
onTouchEnter.Invoke( gesture);
|
||||
isOnTouch = true;
|
||||
}
|
||||
else if (fingerOver[gesture.fingerIndex]){
|
||||
onTouchOver.Invoke(gesture);
|
||||
}
|
||||
}
|
||||
else{
|
||||
if (fingerOver[gesture.fingerIndex]){
|
||||
fingerOver[gesture.fingerIndex] = false;
|
||||
onTouchExit.Invoke(gesture);
|
||||
if (!isMultiTouch){
|
||||
isOnTouch = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void On_TouchUp (Gesture gesture){
|
||||
|
||||
if (fingerOver[gesture.fingerIndex]){
|
||||
fingerOver[gesture.fingerIndex] = false;
|
||||
onTouchExit.Invoke(gesture);
|
||||
if (!isMultiTouch){
|
||||
isOnTouch = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e9b7affbfb3c1534484689f270420489
|
||||
timeCreated: 1450162323
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {fileID: 2800000, guid: 61719e5cd5d2e754280e0dd736d759ec, type: 3}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,125 @@
|
||||
/***********************************************
|
||||
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 LongTap")]
|
||||
public class QuickLongTap : QuickBase {
|
||||
|
||||
#region Events
|
||||
[System.Serializable] public class OnLongTap : UnityEvent<Gesture>{}
|
||||
|
||||
[SerializeField]
|
||||
public OnLongTap onLongTap;
|
||||
#endregion
|
||||
|
||||
#region Enumeration
|
||||
public enum ActionTriggering {Start,InProgress,End};
|
||||
#endregion
|
||||
|
||||
#region Members
|
||||
public ActionTriggering actionTriggering;
|
||||
private Gesture currentGesture;
|
||||
#endregion
|
||||
|
||||
public QuickLongTap(){
|
||||
quickActionName = "QuickLongTap"+ System.Guid.NewGuid().ToString().Substring(0,7);
|
||||
}
|
||||
|
||||
void Update(){
|
||||
currentGesture = EasyTouch.current;
|
||||
|
||||
if (currentGesture != null)
|
||||
{
|
||||
|
||||
if (!is2Finger)
|
||||
{
|
||||
|
||||
if (currentGesture.type == EasyTouch.EvtType.On_TouchStart && fingerIndex == -1 && IsOverMe(currentGesture))
|
||||
{
|
||||
fingerIndex = currentGesture.fingerIndex;
|
||||
}
|
||||
|
||||
if (currentGesture.type == EasyTouch.EvtType.On_LongTapStart && actionTriggering == ActionTriggering.Start)
|
||||
{
|
||||
if (currentGesture.fingerIndex == fingerIndex || isMultiTouch)
|
||||
{
|
||||
|
||||
DoAction(currentGesture);
|
||||
}
|
||||
}
|
||||
|
||||
if (currentGesture.type == EasyTouch.EvtType.On_LongTap && actionTriggering == ActionTriggering.InProgress)
|
||||
{
|
||||
if (currentGesture.fingerIndex == fingerIndex || isMultiTouch)
|
||||
{
|
||||
DoAction(currentGesture);
|
||||
}
|
||||
}
|
||||
|
||||
if (currentGesture.type == EasyTouch.EvtType.On_LongTapEnd && actionTriggering == ActionTriggering.End)
|
||||
{
|
||||
if (currentGesture.fingerIndex == fingerIndex || isMultiTouch)
|
||||
{
|
||||
DoAction(currentGesture);
|
||||
fingerIndex = -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (currentGesture.type == EasyTouch.EvtType.On_LongTapStart2Fingers && actionTriggering == ActionTriggering.Start)
|
||||
{
|
||||
DoAction(currentGesture);
|
||||
}
|
||||
|
||||
if (currentGesture.type == EasyTouch.EvtType.On_LongTap2Fingers && actionTriggering == ActionTriggering.InProgress)
|
||||
{
|
||||
DoAction(currentGesture);
|
||||
}
|
||||
|
||||
if (currentGesture.type == EasyTouch.EvtType.On_LongTapEnd2Fingers && actionTriggering == ActionTriggering.End)
|
||||
{
|
||||
DoAction(currentGesture);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void DoAction(Gesture gesture){
|
||||
if (IsOverMe(gesture)){
|
||||
onLongTap.Invoke( gesture);
|
||||
}
|
||||
}
|
||||
|
||||
private bool IsOverMe(Gesture gesture){
|
||||
bool returnValue = false;
|
||||
|
||||
if ( realType == GameObjectType.UI){
|
||||
if (gesture.isOverGui ){
|
||||
if ((gesture.pickedUIElement == gameObject || gesture.pickedUIElement.transform.IsChildOf( transform))){
|
||||
returnValue = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
else{
|
||||
if ((!enablePickOverUI && gesture.pickedUIElement == null) || enablePickOverUI){
|
||||
if (EasyTouch.GetGameObjectAt( gesture.position,is2Finger) == gameObject){
|
||||
returnValue = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return returnValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 96373da5010ca9442a11456032621dc3
|
||||
timeCreated: 1452769950
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {fileID: 2800000, guid: 61719e5cd5d2e754280e0dd736d759ec, type: 3}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,139 @@
|
||||
/***********************************************
|
||||
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 Pinch")]
|
||||
public class QuickPinch : QuickBase {
|
||||
|
||||
#region Events
|
||||
[System.Serializable] public class OnPinchAction : UnityEvent<Gesture>{}
|
||||
|
||||
[SerializeField]
|
||||
public OnPinchAction onPinchAction;
|
||||
#endregion
|
||||
|
||||
#region enumeration
|
||||
public enum ActionTiggering {InProgress,End};
|
||||
public enum ActionPinchDirection {All, PinchIn, PinchOut};
|
||||
#endregion
|
||||
|
||||
#region Members
|
||||
public bool isGestureOnMe = false;
|
||||
public ActionTiggering actionTriggering;
|
||||
public ActionPinchDirection pinchDirection;
|
||||
private float axisActionValue = 0;
|
||||
public bool enableSimpleAction = false;
|
||||
#endregion
|
||||
|
||||
#region MonoBehaviour callback
|
||||
public QuickPinch(){
|
||||
quickActionName = "QuickPinch"+ System.Guid.NewGuid().ToString().Substring(0,7);
|
||||
}
|
||||
|
||||
public override void OnEnable(){
|
||||
EasyTouch.On_Pinch += On_Pinch;
|
||||
EasyTouch.On_PinchIn += On_PinchIn;
|
||||
EasyTouch.On_PinchOut += On_PinchOut;
|
||||
EasyTouch.On_PinchEnd += On_PichEnd;
|
||||
}
|
||||
|
||||
public override void OnDisable(){
|
||||
UnsubscribeEvent();
|
||||
}
|
||||
|
||||
void OnDestroy(){
|
||||
UnsubscribeEvent();
|
||||
}
|
||||
|
||||
void UnsubscribeEvent(){
|
||||
EasyTouch.On_Pinch -= On_Pinch;
|
||||
EasyTouch.On_PinchIn -= On_PinchIn;
|
||||
EasyTouch.On_PinchOut -= On_PinchOut;
|
||||
EasyTouch.On_PinchEnd -= On_PichEnd;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region EasyTouch event
|
||||
void On_Pinch (Gesture gesture){
|
||||
|
||||
if (actionTriggering == ActionTiggering.InProgress && pinchDirection == ActionPinchDirection.All){
|
||||
DoAction( gesture);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void On_PinchIn (Gesture gesture){
|
||||
|
||||
if (actionTriggering == ActionTiggering.InProgress & pinchDirection == ActionPinchDirection.PinchIn){
|
||||
DoAction( gesture);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void On_PinchOut (Gesture gesture){
|
||||
|
||||
if (actionTriggering == ActionTiggering.InProgress & pinchDirection == ActionPinchDirection.PinchOut){
|
||||
DoAction( gesture);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void On_PichEnd (Gesture gesture){
|
||||
|
||||
if (actionTriggering == ActionTiggering.End){
|
||||
DoAction( gesture);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Private method
|
||||
void DoAction(Gesture gesture){
|
||||
|
||||
axisActionValue = gesture.deltaPinch * sensibility * Time.deltaTime;
|
||||
|
||||
if (isGestureOnMe){
|
||||
if ( realType == GameObjectType.UI){
|
||||
if (gesture.isOverGui ){
|
||||
if ((gesture.pickedUIElement == gameObject || gesture.pickedUIElement.transform.IsChildOf( transform))){
|
||||
onPinchAction.Invoke(gesture);
|
||||
if (enableSimpleAction){
|
||||
DoDirectAction( axisActionValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else{
|
||||
if ((!enablePickOverUI && gesture.pickedUIElement == null) || enablePickOverUI){
|
||||
if (gesture.GetCurrentPickedObject(true) == gameObject){
|
||||
onPinchAction.Invoke(gesture);
|
||||
if (enableSimpleAction){
|
||||
DoDirectAction( axisActionValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else{
|
||||
if ((!enablePickOverUI && gesture.pickedUIElement == null) || enablePickOverUI){
|
||||
onPinchAction.Invoke(gesture);
|
||||
if (enableSimpleAction){
|
||||
DoDirectAction( axisActionValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 82a53e7679dd5fe4a97e230b88ebc585
|
||||
timeCreated: 1450353100
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {fileID: 2800000, guid: 61719e5cd5d2e754280e0dd736d759ec, type: 3}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,223 @@
|
||||
/***********************************************
|
||||
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 Swipe")]
|
||||
public class QuickSwipe : QuickBase {
|
||||
|
||||
#region Events
|
||||
[System.Serializable] public class OnSwipeAction : UnityEvent<Gesture>{}
|
||||
|
||||
[SerializeField]
|
||||
public OnSwipeAction onSwipeAction;
|
||||
#endregion
|
||||
|
||||
#region enumeration
|
||||
public enum ActionTriggering {InProgress,End}
|
||||
public enum SwipeDirection {Vertical, Horizontal, DiagonalRight,DiagonalLeft,Up,UpRight, Right,DownRight,Down,DownLeft, Left,UpLeft,All};
|
||||
#endregion
|
||||
|
||||
#region Members
|
||||
public bool allowSwipeStartOverMe = true;
|
||||
public ActionTriggering actionTriggering;
|
||||
public SwipeDirection swipeDirection = SwipeDirection.All;
|
||||
private float axisActionValue = 0;
|
||||
public bool enableSimpleAction = false;
|
||||
#endregion
|
||||
|
||||
#region MonoBehaviour callback
|
||||
public QuickSwipe(){
|
||||
quickActionName = "QuickSwipe" + System.Guid.NewGuid().ToString().Substring(0,7);
|
||||
}
|
||||
|
||||
public override void OnEnable(){
|
||||
base.OnEnable();
|
||||
EasyTouch.On_Drag += On_Drag;
|
||||
EasyTouch.On_Swipe += On_Swipe;
|
||||
EasyTouch.On_DragEnd += On_DragEnd;
|
||||
EasyTouch.On_SwipeEnd += On_SwipeEnd;
|
||||
}
|
||||
|
||||
public override void OnDisable(){
|
||||
base.OnDisable();
|
||||
UnsubscribeEvent();
|
||||
}
|
||||
|
||||
void OnDestroy(){
|
||||
UnsubscribeEvent();
|
||||
}
|
||||
|
||||
void UnsubscribeEvent(){
|
||||
EasyTouch.On_Drag -= On_Drag;
|
||||
EasyTouch.On_Swipe -= On_Swipe;
|
||||
EasyTouch.On_DragEnd -= On_DragEnd;
|
||||
EasyTouch.On_SwipeEnd -= On_SwipeEnd;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region EasyTouch Event
|
||||
void On_Swipe (Gesture gesture){
|
||||
|
||||
if (gesture.touchCount ==1 && ((gesture.pickedObject != gameObject && !allowSwipeStartOverMe) || allowSwipeStartOverMe)){
|
||||
fingerIndex = gesture.fingerIndex;
|
||||
if (actionTriggering == ActionTriggering.InProgress){
|
||||
if (isRightDirection(gesture)){
|
||||
onSwipeAction.Invoke( gesture);
|
||||
if (enableSimpleAction){
|
||||
DoAction(gesture);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void On_SwipeEnd (Gesture gesture){
|
||||
if (actionTriggering == ActionTriggering.End && isRightDirection(gesture) ){
|
||||
onSwipeAction.Invoke( gesture);
|
||||
if (enableSimpleAction){
|
||||
DoAction(gesture);
|
||||
}
|
||||
}
|
||||
|
||||
if (fingerIndex == gesture.fingerIndex){
|
||||
fingerIndex =-1;
|
||||
}
|
||||
}
|
||||
|
||||
void On_DragEnd (Gesture gesture){
|
||||
if (gesture.pickedObject == gameObject && allowSwipeStartOverMe){
|
||||
On_SwipeEnd( gesture);
|
||||
}
|
||||
}
|
||||
|
||||
void On_Drag (Gesture gesture){
|
||||
if (gesture.pickedObject == gameObject && allowSwipeStartOverMe){
|
||||
On_Swipe( gesture);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Private methods
|
||||
bool isRightDirection(Gesture gesture){
|
||||
float coef = -1;
|
||||
if ( inverseAxisValue){
|
||||
coef = 1;
|
||||
}
|
||||
|
||||
axisActionValue = 0;
|
||||
switch (swipeDirection){
|
||||
case SwipeDirection.All:
|
||||
axisActionValue = gesture.deltaPosition.magnitude*coef;
|
||||
return true;
|
||||
case SwipeDirection.Horizontal:
|
||||
if (gesture.swipe == EasyTouch.SwipeDirection.Left || gesture.swipe == EasyTouch.SwipeDirection.Right){
|
||||
axisActionValue = gesture.deltaPosition.x *coef;
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
case SwipeDirection.Vertical:
|
||||
if (gesture.swipe == EasyTouch.SwipeDirection.Up || gesture.swipe == EasyTouch.SwipeDirection.Down){
|
||||
axisActionValue = gesture.deltaPosition.y*coef;
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
case SwipeDirection.DiagonalLeft:
|
||||
if (gesture.swipe == EasyTouch.SwipeDirection.UpLeft || gesture.swipe == EasyTouch.SwipeDirection.DownRight){
|
||||
axisActionValue = gesture.deltaPosition.magnitude*coef;
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
case SwipeDirection.DiagonalRight:
|
||||
if (gesture.swipe == EasyTouch.SwipeDirection.UpRight || gesture.swipe == EasyTouch.SwipeDirection.DownLeft){
|
||||
axisActionValue = gesture.deltaPosition.magnitude*coef;
|
||||
return true;
|
||||
}
|
||||
|
||||
break;
|
||||
case SwipeDirection.Left:
|
||||
if (gesture.swipe == EasyTouch.SwipeDirection.Left){
|
||||
axisActionValue = gesture.deltaPosition.x*coef;
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
case SwipeDirection.Right:
|
||||
if (gesture.swipe == EasyTouch.SwipeDirection.Right){
|
||||
axisActionValue = gesture.deltaPosition.x*coef;
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
case SwipeDirection.DownLeft:
|
||||
if (gesture.swipe == EasyTouch.SwipeDirection.DownLeft){
|
||||
axisActionValue = gesture.deltaPosition.magnitude*coef;
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
case SwipeDirection.DownRight:
|
||||
if (gesture.swipe == EasyTouch.SwipeDirection.DownRight){
|
||||
|
||||
axisActionValue = gesture.deltaPosition.magnitude*coef;
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
case SwipeDirection.UpLeft:
|
||||
if (gesture.swipe == EasyTouch.SwipeDirection.UpLeft){
|
||||
|
||||
axisActionValue = gesture.deltaPosition.magnitude*coef;
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
case SwipeDirection.UpRight:
|
||||
if (gesture.swipe == EasyTouch.SwipeDirection.UpRight){
|
||||
axisActionValue = gesture.deltaPosition.magnitude*coef;
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
case SwipeDirection.Up:
|
||||
if (gesture.swipe == EasyTouch.SwipeDirection.Up){
|
||||
axisActionValue = gesture.deltaPosition.y*coef;
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
case SwipeDirection.Down:
|
||||
if (gesture.swipe == EasyTouch.SwipeDirection.Down){
|
||||
axisActionValue = gesture.deltaPosition.y*coef;
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
axisActionValue = 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
void DoAction(Gesture gesture){
|
||||
|
||||
switch (directAction){
|
||||
case DirectAction.Rotate:
|
||||
case DirectAction.RotateLocal:
|
||||
axisActionValue *= sensibility;
|
||||
break;
|
||||
case DirectAction.Translate:
|
||||
case DirectAction.TranslateLocal:
|
||||
case DirectAction.Scale:
|
||||
axisActionValue /= Screen.dpi;
|
||||
axisActionValue *= sensibility;
|
||||
break;
|
||||
}
|
||||
|
||||
DoDirectAction( axisActionValue);
|
||||
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: df757cf29e57b9449a27cd9dc4a9404a
|
||||
timeCreated: 1450163203
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {fileID: 2800000, guid: 61719e5cd5d2e754280e0dd736d759ec, type: 3}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,91 @@
|
||||
/***********************************************
|
||||
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"+ System.Guid.NewGuid().ToString().Substring(0,7);
|
||||
}
|
||||
|
||||
void Update(){
|
||||
currentGesture = EasyTouch.current;
|
||||
|
||||
if (currentGesture != null)
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e9c933eb8b407754a8f98425dfaa784f
|
||||
timeCreated: 1452768366
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {fileID: 2800000, guid: 61719e5cd5d2e754280e0dd736d759ec, type: 3}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,131 @@
|
||||
/***********************************************
|
||||
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 Touch")]
|
||||
public class QuickTouch : QuickBase {
|
||||
|
||||
#region Events
|
||||
[System.Serializable] public class OnTouch : UnityEvent<Gesture>{}
|
||||
[System.Serializable] public class OnTouchNotOverMe : UnityEvent<Gesture>{}
|
||||
|
||||
[SerializeField]
|
||||
public OnTouch onTouch;
|
||||
public OnTouchNotOverMe onTouchNotOverMe;
|
||||
#endregion
|
||||
|
||||
#region Enumeration
|
||||
public enum ActionTriggering {Start,Down,Up};
|
||||
#endregion
|
||||
|
||||
#region Members
|
||||
public ActionTriggering actionTriggering;
|
||||
private Gesture currentGesture;
|
||||
#endregion
|
||||
|
||||
#region Monobehavior CallBack
|
||||
public QuickTouch(){
|
||||
quickActionName = "QuickTouch"+ System.Guid.NewGuid().ToString().Substring(0,7);
|
||||
}
|
||||
#endregion
|
||||
|
||||
void Update(){
|
||||
currentGesture = EasyTouch.current;
|
||||
|
||||
if (!is2Finger && currentGesture!=null)
|
||||
{
|
||||
|
||||
// GetIndex at touch start
|
||||
if (currentGesture.type == EasyTouch.EvtType.On_TouchStart && fingerIndex == -1 && IsOverMe(currentGesture)){
|
||||
fingerIndex = currentGesture.fingerIndex;
|
||||
}
|
||||
|
||||
// start
|
||||
if (currentGesture.type == EasyTouch.EvtType.On_TouchStart && actionTriggering == ActionTriggering.Start){
|
||||
if (currentGesture.fingerIndex == fingerIndex || isMultiTouch){
|
||||
DoAction( currentGesture);
|
||||
}
|
||||
}
|
||||
|
||||
// Down
|
||||
if (currentGesture.type == EasyTouch.EvtType.On_TouchDown && actionTriggering == ActionTriggering.Down){
|
||||
if (currentGesture.fingerIndex == fingerIndex || isMultiTouch){
|
||||
DoAction( currentGesture);
|
||||
}
|
||||
}
|
||||
|
||||
// Up
|
||||
if (currentGesture.type == EasyTouch.EvtType.On_TouchUp){
|
||||
if ( actionTriggering == ActionTriggering.Up){
|
||||
if (currentGesture.fingerIndex == fingerIndex || isMultiTouch){
|
||||
if (IsOverMe(currentGesture)){
|
||||
onTouch.Invoke( currentGesture);
|
||||
}
|
||||
else{
|
||||
onTouchNotOverMe.Invoke( currentGesture);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (currentGesture.fingerIndex == fingerIndex){ fingerIndex =-1;}
|
||||
}
|
||||
}
|
||||
else{
|
||||
if (currentGesture != null){
|
||||
if (currentGesture.type == EasyTouch.EvtType.On_TouchStart2Fingers && actionTriggering == ActionTriggering.Start) {
|
||||
DoAction(currentGesture);
|
||||
}
|
||||
|
||||
if (currentGesture.type == EasyTouch.EvtType.On_TouchDown2Fingers && actionTriggering == ActionTriggering.Down) {
|
||||
DoAction(currentGesture);
|
||||
}
|
||||
|
||||
if (currentGesture.type == EasyTouch.EvtType.On_TouchUp2Fingers && actionTriggering == ActionTriggering.Up) {
|
||||
DoAction(currentGesture);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#region Private method
|
||||
void DoAction(Gesture gesture){
|
||||
if (IsOverMe(gesture)){
|
||||
onTouch.Invoke( gesture);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private bool IsOverMe(Gesture gesture){
|
||||
bool returnValue = false;
|
||||
|
||||
if ( realType == GameObjectType.UI){
|
||||
if (gesture.isOverGui ){
|
||||
if ((gesture.pickedUIElement == gameObject || gesture.pickedUIElement.transform.IsChildOf( transform))){
|
||||
returnValue = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
else{
|
||||
if ((!enablePickOverUI && gesture.pickedUIElement == null) || enablePickOverUI){
|
||||
if (EasyTouch.GetGameObjectAt( gesture.position,is2Finger) == gameObject){
|
||||
|
||||
returnValue = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return returnValue;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5145c5785e18ed6459cb766ecf988d1a
|
||||
timeCreated: 1450164574
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {fileID: 2800000, guid: 61719e5cd5d2e754280e0dd736d759ec, type: 3}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,152 @@
|
||||
/***********************************************
|
||||
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 Twist")]
|
||||
public class QuickTwist : QuickBase {
|
||||
|
||||
#region Events
|
||||
[System.Serializable] public class OnTwistAction : UnityEvent<Gesture>{}
|
||||
|
||||
[SerializeField]
|
||||
public OnTwistAction onTwistAction;
|
||||
#endregion
|
||||
|
||||
#region enumeration
|
||||
public enum ActionTiggering {InProgress,End};
|
||||
public enum ActionRotationDirection {All, Clockwise, Counterclockwise};
|
||||
#endregion
|
||||
|
||||
#region Members
|
||||
public bool isGestureOnMe = false;
|
||||
public ActionTiggering actionTriggering;
|
||||
public ActionRotationDirection rotationDirection;
|
||||
private float axisActionValue = 0;
|
||||
public bool enableSimpleAction = false;
|
||||
#endregion
|
||||
|
||||
#region MonoBehaviour callback
|
||||
public QuickTwist(){
|
||||
quickActionName = "QuickTwist"+ System.Guid.NewGuid().ToString().Substring(0,7);
|
||||
}
|
||||
|
||||
public override void OnEnable(){
|
||||
EasyTouch.On_Twist += On_Twist;
|
||||
EasyTouch.On_TwistEnd += On_TwistEnd;
|
||||
}
|
||||
|
||||
public override void OnDisable(){
|
||||
UnsubscribeEvent();
|
||||
}
|
||||
|
||||
void OnDestroy(){
|
||||
UnsubscribeEvent();
|
||||
}
|
||||
|
||||
void UnsubscribeEvent(){
|
||||
EasyTouch.On_Twist -= On_Twist;
|
||||
EasyTouch.On_TwistEnd -= On_TwistEnd;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region EasyTouch event
|
||||
void On_Twist (Gesture gesture){
|
||||
|
||||
if (actionTriggering == ActionTiggering.InProgress){
|
||||
|
||||
if (IsRightRotation(gesture)){
|
||||
DoAction( gesture);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void On_TwistEnd (Gesture gesture){
|
||||
|
||||
if (actionTriggering == ActionTiggering.End){
|
||||
if (IsRightRotation(gesture)){
|
||||
DoAction( gesture);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Private method
|
||||
bool IsRightRotation(Gesture gesture){
|
||||
|
||||
axisActionValue =0;
|
||||
float coef = 1;
|
||||
if ( inverseAxisValue){
|
||||
coef = -1;
|
||||
}
|
||||
|
||||
switch (rotationDirection){
|
||||
case ActionRotationDirection.All:
|
||||
axisActionValue = gesture.twistAngle * sensibility * coef;
|
||||
return true;
|
||||
|
||||
case ActionRotationDirection.Clockwise:
|
||||
if (gesture.twistAngle<0){
|
||||
axisActionValue = gesture.twistAngle * sensibility* coef;
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
case ActionRotationDirection.Counterclockwise:
|
||||
if (gesture.twistAngle>0){
|
||||
axisActionValue = gesture.twistAngle * sensibility* coef;
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void DoAction(Gesture gesture){
|
||||
|
||||
if (isGestureOnMe){
|
||||
if ( realType == GameObjectType.UI){
|
||||
if (gesture.isOverGui ){
|
||||
if ((gesture.pickedUIElement == gameObject || gesture.pickedUIElement.transform.IsChildOf( transform))){
|
||||
onTwistAction.Invoke(gesture);
|
||||
if (enableSimpleAction){
|
||||
DoDirectAction( axisActionValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else{
|
||||
|
||||
if ((!enablePickOverUI && gesture.pickedUIElement == null) || enablePickOverUI){
|
||||
if (gesture.GetCurrentPickedObject( true) == gameObject){
|
||||
onTwistAction.Invoke(gesture);
|
||||
if (enableSimpleAction){
|
||||
DoDirectAction( axisActionValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else{
|
||||
if ((!enablePickOverUI && gesture.pickedUIElement == null) || enablePickOverUI){
|
||||
onTwistAction.Invoke(gesture);
|
||||
if (enableSimpleAction){
|
||||
DoDirectAction( axisActionValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f38cfe9733704674da647859a90a3734
|
||||
timeCreated: 1450252691
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {fileID: 2800000, guid: 61719e5cd5d2e754280e0dd736d759ec, type: 3}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user