这里不写怎么实现拖拽滑动,只说明怎样实现“拖拽一下,图标(图片)就只滑动一格”的逻辑。
( 一格 = 200距离 )
拓展阅读:
【Unity】Mathf的常用函数Abs,Ceil,Floor,Lerp等
using DG.Tweening;
using System;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;
public class testDrag : MonoBehaviour, IBeginDragHandler, IDragHandler
{
float swipeThreshold = 200; // 200距离为一格
private Vector2 startPosition;
public void OnBeginDrag(PointerEventData eventData)
{
// PointerEventData 可获得当前位置
startPosition = eventData.position;
}
public void OnDrag(PointerEventData eventData)
{
float swipeDistance = eventData.position.x - startPosition.x;
// 如果移动的距离大于等于swipeThreshold
if (Mathf.Abs(swipeDistance) >= swipeThreshold)
{
startPosition = eventData.position;
if (swipeDistance > 0) // 大于0是往右移动
{
Debug.Log(" 向右移动一格 ");
}
else // 小于0是往左移动
{
Debug.Log(" 向左移动一格 ");
}
}
}
}