Unity입력과 물리

입력 읽기 기본

기존 Input Manager 기준으로 이동 입력, 버튼 입력, 프레임별 읽기 위치를 빠르게 정리합니다.

마지막 수정 2026년 3월 19일

기본 패턴

csharp
private void Update()
{
    float x = Input.GetAxisRaw("Horizontal");
    float z = Input.GetAxisRaw("Vertical");

    moveDirection = new Vector3(x, 0f, z).normalized;

    if (Input.GetButtonDown("Jump"))
    {
        Jump();
    }
}

설명

  • 입력은 프레임 단위 이벤트라서 보통 Update에서 읽습니다.
  • GetAxis는 부드럽게 변화하고, GetAxisRaw는 즉시 -1/0/1 값을 줍니다.
  • 눌린 순간은 GetButtonDown, 누르고 있는 동안은 GetButton, 뗀 순간은 GetButtonUp입니다.

짧은 예제

csharp
private void FixedUpdate()
{
    body.MovePosition(body.position + moveDirection * moveSpeed * Time.fixedDeltaTime);
}

빠른 정리

입력 함수의미
GetAxis("Horizontal")부드러운 축 입력
GetAxisRaw("Horizontal")즉시 축 입력
GetButtonDown("Jump")눌린 순간
GetKeyDown(KeyCode.E)특정 키 순간 감지

주의할 점

입력은 Update에서 읽고, 물리 이동은 FixedUpdate에서 적용하는 식으로 분리해야 조작감이 안정적입니다.

참고 링크

2 sources