[Unity3D] 게임패드 이동 입력 문제

oy Hong·2024년 4월 30일

문제


대각선으로 움직일 때 속도가 빨라지는 부분을 해결하기 위해 이동 벡터를 정규화시켜주었다. 이는 게임패드로 조작 시 왼쪽 썸스틱의 기울기와는 상관없이 일정한 움직임을 갖도록 했다. 이를 해결해보자.

이동 벡터를 정규화하지 않고 게임패드로 움직여보면 썸스틱의 기울기에 따라 이동속도가 달라지는 걸 볼 수 있다.

해결책

  1. 이동 벡터를 정규화하기 전 이동 벡터의 크기를 구한다.
float magnitude = movementDirection.magnitude;
  1. 이동 벡터의 크기가 1을 넘지 못하도록 처리한다.
magnitude = Mathf.Clamp01(magnitude);
  1. 이동속도와 곱해준다.
transform.Translate(movementDirection * magnitude * speed * Time.deltaTime, Space.World);

이동 벡터의 크기를 이용하여 게임패드 왼쪽 썸스틱의 기울기에 따라 이동속도가 조절되도록 하여 문제를 해결할 수 있다.

0개의 댓글