Хочу сделать поворот комнаты на 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;
                }
        }

    }
    
}

Ответы (0 шт):