首先在要拖拽的物体上添加Box Collider组件(一定要有)
在Hierarchy面板上添加Easytouch
然后将以下代码挂在物体上,代码参考EasyTouch官方案例(好像还有更简单的写法 没深入研究只是暂时用来简单使用,等以后研究了再补上)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using HedgehogTeam.EasyTouch;
using System;
public class BgMove : MonoBehaviour
{
private Vector3 deltaPosition;
private int fingerIndex;
void OnEnable()
{
EasyTouch.On_Drag += On_Drag;
EasyTouch.On_DragStart += On_DragStart;
EasyTouch.On_DragEnd += On_DragEnd;
}
void OnDisable()
{
UnsubscribeEvent();
}
void OnDestroy()
{
UnsubscribeEvent();
}
void UnsubscribeEvent()
{
EasyTouch.On_Drag -= On_Drag;
EasyTouch.On_DragStart -= On_DragStart;
EasyTouch.On_DragEnd -= On_DragEnd;
}
// 拖拽开始
void On_DragStart(Gesture gesture)
{
Debug.Log("拖拽");
// 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 = position - transform.position;
}
}
// 拖拽中
void On_Drag(Gesture gesture)
{
// 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);
transform.position = position - deltaPosition;
// Get the drag angle
float angle = gesture.GetSwipeOrDragAngle();
Debug.Log("拖拽中");
}
}
// 拖拽结束
void On_DragEnd(Gesture gesture)
{
}
}