mergemilitary/Assets/ThirdPlugins/EasyTouchBundle/EasyTouch/Examples/4.X/UnityUI/UITwistPinch/UIDrag.cs

89 lines
2.3 KiB
C#

using UnityEngine;
using System.Collections;
using HedgehogTeam.EasyTouch;
public class UIDrag : MonoBehaviour {
private int fingerId = -1;
private bool drag = true;
void OnEnable(){
EasyTouch.On_TouchDown += On_TouchDown;
EasyTouch.On_TouchStart += On_TouchStart;
EasyTouch.On_TouchUp += On_TouchUp;
EasyTouch.On_TouchStart2Fingers += On_TouchStart2Fingers;
EasyTouch.On_TouchDown2Fingers += On_TouchDown2Fingers;
EasyTouch.On_TouchUp2Fingers += On_TouchUp2Fingers;
}
void OnDestroy(){
EasyTouch.On_TouchDown -= On_TouchDown;
EasyTouch.On_TouchStart -= On_TouchStart;
EasyTouch.On_TouchUp -= On_TouchUp;
EasyTouch.On_TouchStart2Fingers -= On_TouchStart2Fingers;
EasyTouch.On_TouchDown2Fingers -= On_TouchDown2Fingers;
EasyTouch.On_TouchUp2Fingers -= On_TouchUp2Fingers;
}
void On_TouchStart (Gesture gesture){
if (gesture.isOverGui && drag){
if ((gesture.pickedUIElement == gameObject || gesture.pickedUIElement.transform.IsChildOf( transform)) && fingerId==-1){
fingerId = gesture.fingerIndex;
transform.SetAsLastSibling();
}
}
}
void On_TouchDown (Gesture gesture){
if (fingerId == gesture.fingerIndex && drag){
if (gesture.isOverGui ){
if ((gesture.pickedUIElement == gameObject || gesture.pickedUIElement.transform.IsChildOf( transform)) ){
transform.position += (Vector3)gesture.deltaPosition;
}
}
}
}
void On_TouchUp (Gesture gesture){
if (fingerId == gesture.fingerIndex){
fingerId = -1;
}
}
void On_TouchStart2Fingers (Gesture gesture)
{
if (gesture.isOverGui && drag){
if ((gesture.pickedUIElement == gameObject || gesture.pickedUIElement.transform.IsChildOf( transform)) && fingerId==-1){
transform.SetAsLastSibling();
}
}
}
void On_TouchDown2Fingers (Gesture gesture)
{
if (gesture.isOverGui){
if (gesture.pickedUIElement == gameObject || gesture.pickedUIElement.transform.IsChildOf( transform)){
if ((gesture.pickedUIElement == gameObject || gesture.pickedUIElement.transform.IsChildOf( transform)) ){
transform.position += (Vector3)gesture.deltaPosition;
}
drag = false;
}
}
}
void On_TouchUp2Fingers (Gesture gesture)
{
if (gesture.isOverGui){
if (gesture.pickedUIElement == gameObject || gesture.pickedUIElement.transform.IsChildOf( transform)){
drag = true;
}
}
}
}