GetAxis & GetAxisRaw 알아보기

M_N·2023년 11월 13일

유니티

목록 보기
1/1

1. GetAxis

Input.GetAxis()는 GetAxis와 관련된 입력을 받아오는 명령어로, -1과 1사이의 실수값을 리턴하고,기본적으로는 0의 값을 가진 함수입니다.
대표적으로 Horizontal과 Vertical에 대한 값을 받아옵니다.

  • Horizontal : 수평의 값(왼쪽, 오른쪽)의 움직이는 값을 받아옴.
  • Vertical : 수직의 값(위쪽, 아래쪽)의 움직이는 값을 받아옴.

즉, Horizontal의 값을 받아올때 왼쪽 키를 누르면 0 ~ -1f의 값을 받아오고 오른쪽 키를 누르면 0 ~ 1f의 값을 받아옵니다.

2. GetAxisRaw

GetAxis는 알아봤는데 그럼 GetAxisRaw는 뭘까요? Input.GetAxisRaw는 -1, 0, 1의 값을 즉시 받아옵니다.
반면 GetAxis는 -1 ~ 1값을 부드럽게 받아옵니다. 예시를 들어 코드를 하나 작성하겠습니다.

public class Player : MonoBehaviour
{

    public Vector2 inputVec;
 
    void Update()
    {
        inputVec.x = Input.GetAxis("Horizontal");
        inputVec.y = Input.GetAxisRaw("Vertical");
    }
 
    void FixedUpdate()
    {
        Vector2 nextVec = inputVec.normalized * speed * Time.fixedDeltaTime;
        rigid.MovePosition(rigid.position + nextVec);
    }
}
.gif로 바꾸어서 짤이 조금 끊기는 느낌은 있지만 수평, 수직 둘 다 비슷한 시간동안 키를 눌렀습니다.

GetAxis로 작성한 좌우로 이동은 좀 더 부드럽게 값을 받아오기 때문에 조금 더 많이 움직이는 부분을 보이고 있고
GetAxisRaw로 작성한 위아래 이동은 즉시 값을 받아오기 때문에 키를 뗐을때, 0을 받아오므로 급정지 하는 모습을 볼 수 있습니다.

참고로 InputManager는 Unity에서 Edit - ProjectSetting - Input Manager를 통해 확인할 수 있습니다.

Input Manager에는 Horizontal, Vertical을 제외한 여러가지 입력을 설정할 수 있습니다.
그리고 Input 함수에는 GetAxis외에도 GetKey(), GetButton()등 여러가지 있습니다.

GetAxis()와 GetKey(), GetButton()은 비슷한 기능을 수행하지만, GetKey, GetButton은 Bool형식으로 True/False를 반환하는 반면, GetAxis는 Float형식으로 -1과 1사이의 실수를 리턴하는 차이점이 있습니다.

profile
꿈꾸는 개발자

0개의 댓글