Хочу сделать поворот комнаты на 90гр по свайпу C#
При выполнении кода комната бесконечно крутиться
Свайпы через Ui элементы реализованы (canvas,panel)
using UnityEngine;
using UnityEngine.EventSystems;
public class RoomSwitсh : MonoBehaviour , IBeginDragHandler, IDragHandler
{
public Transform Room;
public float speed = 0.1f;
public float smooth;
public Vector3 toPl;
private bool flag = false;
private float flagMove = 0;
private float pastPosition;
public void OnBeginDrag(PointerEventData eventData)
{
if (Mathf.Abs(eventData.delta.x) > Mathf.Abs(eventData.delta.y))
{
flag = true;
}
}
public void OnDrag(PointerEventData eventData)
{
if (flag == true)
{
if(eventData.delta.x>0){
flagMove = 1;
}
else{
flagMove = 2;
}
}
}
void Update()
{
if (flagMove == 1)
{
pastPosition = Room.transform.rotation.y;
Room.transform.Rotate(0, Mathf.Lerp(Room.transform.rotation.y,-90,speed ),0);
//Room.transform.rotation = Quaternion.Slerp(Room.transform.rotation,Quaternion.Euler(toPl),smooth);
if (Room.transform.rotation.y == (pastPosition - 90))
{
flag = false;
flagMove = 0;
return;
}
}
else if(flagMove == 2)
{
pastPosition = Room.transform.rotation.y;
Room.transform.Rotate(0, Mathf.Lerp(Room.transform.rotation.y,90,speed ),0);
//Room.transform.rotation = Quaternion.Slerp(Room.transform.rotation,Quaternion.Euler(toPl),smooth);
if (Room.transform.rotation.y == (pastPosition + 90))
{
flag = false;
flagMove = 0;
return;
}
}
}
}