유니티에서 화면 드래그하면 그 방향으로 물체 회전하는거 구현하고 싶은데

chat gpt에서 물어본거랑 유튜브 알려주는거 전부 따라해 봤는데 뭔가 전부 마음에 안듬

그나마 chat gpt가 한게 가장 괜찮은데 


public class DragToRotate : MonoBehaviour
{
    public float rotationSpeed = 5f;

    private bool isDragging = false;
    private Vector3 lastMousePosition;
    private bool justStartedDragging = false;

    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            isDragging = true;
            lastMousePosition = Input.mousePosition;
            justStartedDragging = true;  // 다음 프레임에 회전 건너뜀
        }
        else if (Input.GetMouseButtonUp(0))
        {
            isDragging = false;
        }

        if (isDragging)
        {
            if (justStartedDragging)
            {
                // 마우스를 누른 직후에는 움직임 무시
                justStartedDragging = false;
                lastMousePosition = Input.mousePosition;
                return;
            }

            Vector3 delta = Input.mousePosition - lastMousePosition;
            float rotationX = delta.y * rotationSpeed * Time.deltaTime;
            float rotationY = -delta.x * rotationSpeed * Time.deltaTime;

            transform.Rotate(Vector3.up, rotationY, Space.World);
            transform.Rotate(Vector3.right, rotationX, Space.World);

            lastMousePosition = Input.mousePosition;
        }
    }
}


설명은 잘 못하겠는데 이 코드가 뭔가 이상함 일단 원하는 대로 작동하긴 하는데 뭔가 끊기는 느낌도 들고 부자연 스러운 느낌도 듬

괜찮은 코드나 저 코드에서 수정할 부분 알려 줄 수 있음?