Для добавления жеста swipe в игру, разработанную в Unity, можно использовать следующий подход:
1. Создайте новый скрипт в Unity и назовите его, например, SwipeController.
2. В скрипте SwipeController добавьте следующий код:
```csharp
using UnityEngine;
using System.Collections;
public class SwipeController : MonoBehaviour
{
private Vector2 fingerDownPosition;
private Vector2 fingerUpPosition;
public float swipeThreshold = 50f;
void Update()
{
// Check for swipe input
if (Input.GetMouseButtonDown(0))
{
fingerDownPosition = Input.mousePosition;
}
if (Input.GetMouseButtonUp(0))
{
fingerUpPosition = Input.mousePosition;
// Calculate swipe direction
Vector2 swipeDirection = fingerUpPosition - fingerDownPosition;
// Check if swipe distance is greater than threshold
if (swipeDirection.magnitude > swipeThreshold)
{
// Determine swipe direction
float x = swipeDirection.x;
float y = swipeDirection.y;
if (Mathf.Abs(x) > Mathf.Abs(y))
{
// Horizontal swipe
if (x > 0)
{
Debug.Log("Swipe right");
}
else
{
Debug.Log("Swipe left");
}
}
else
{
// Vertical swipe
if (y > 0)
{
Debug.Log("Swipe up");
// Rotate object on swipe up
transform.Rotate(Vector3.forward, 45f);
}
else
{
Debug.Log("Swipe down");
// Rotate object on swipe down
transform.Rotate(Vector3.forward, -45f);
}
}
}
}
}
}
```
3. Присоедините скрипт SwipeController к объекту, который вы хотите вращать.
4. Запустите игру и попробуйте провести свайп вверх или вниз, чтобы увидеть реакцию объекта.
Если ваш текущий скрипт, основанный на интерфейсах IDragHandler и IBeginDragHandler, не работает как ожидалось, попробуйте использовать вышеуказанный метод для реализации жеста swipe для вращения объекта. Данный метод обрабатывает swipe как нажатие и отпускание пальца на экране, в зависимости от направления свайпа осуществляется поворот объекта. Если у вас все еще возникают проблемы, пожалуйста, уточните, в какой части кода у вас возникают трудности, и я постараюсь помочь вам дальше.