단일 키 입력에 대한 여부를 반환받기 위한 함수로
키가 눌리는 판정에 따라 세 가지 bool 타입 반환 함수가 있습니다.
Input.GetKey() // 키 입력이 진행되는 동안 true를 반환합니다.
Input.GetKeyDown() // 키 입력이 시작되는 순간 1회만 true를 반환합니다.
Input.GetKeyUp() // 키 입력이 종료되는 순간 1회만 false를 반환합니다.
// 키보드 & 게임패드
if (Input.GetKey(KeyCode.Space)) // 키 입력이 진행되는 동안 true
{
Debug.Log("GetKey");
}
if (Input.GetKeyDown(KeyCode.Space)) // 눌렀을 때 1회 true
{
Debug.Log("GetKeyDown");
}
if (Input.GetKeyUp(KeyCode.Space)) // 눌렀다가 떼는 경우 1회 false (떼면 취소 되는 경우)
{
Debug.Log("GetKeyUp");
}
// 마우스 입력 (0, 1, 2에 따라 마우스 클릭을 설정할 수 있습니다.)
if (Input.GetMouseButton(0))
{
Debug.Log("마우스 왼쪽");
}
if (Input.GetMouseButton(1))
{
Debug.Log("마우스 오른쪽");
}
if (Input.GetMouseButton(2))
{
Debug.Log("마우스 훨");
}
여러 장치의 입력을 입력매니저에 이름과 입력을 정의한 것을 말합니다.
유니티에서 Edit -> Project Settings -> Input Manager로 들어갈 수 있습니다.


Fire1은 InputManager에서 키보드(Left ctrl), 마우스(Left button), 조이스틱(Button0)으로 정의되어 있습니다.
if (Input.GetButton("Fire1"))
{
Debug.Log("Fire1 호출");
}
GetAxis도 Input Manager에 대응하는 코드입니다.
유니티 좌표상의 X(Horizontal), Z(Vertical)축에 해당하는 입력 데이터이며,
미 입력시 0, 방향과 입력에 따라 -1.0 ~ 1.0 사이의 float 타입을 반환합니다.
// Horizontal(수평) : 키보드(a,d / ←,→), 조이스틱(왼쪽 아날로그스틱 좌우)
float x = Input.GetAxis("Horizontal");
if (x != 0)
{
Debug.Log($"Horizontal Axis {x}");
}
// Vertical(수직) : 키보드(w,s / ↑,↓), 조이스틱(왼쪽 아날로그스틱 상하)
float y = Input.GetAxis("Vertical");
f (y != 0)
{
Debug.Log($"Vertical Axis {y}");
}
GetAxis와 마찬가지로 Input Manager에 대응하는 함수입니다.
유니티 좌표상의 X, Z축에 해당하는 입력 데이터를 -1, 0, 1로 반환합니다.
float horizontalInput = Input.GetAxisRaw("Horizontal");
if (horizontalInput > 0)
{
// 오른쪽으로 이동
}
else if (horizontalInput < 0)
{
// 왼쪽으로 이동
}
else
{
// 정지
}
| GetAxis | GetAxisRaw |
|---|---|
| 입력 값을 스무딩(smoothing)하여 반환합니다. 범위를 적용하여 입력 값의 변화를 부드럽게 만들어 줍니다. 자연스러운 제어가 가능해지는 거죠! 캐릭터의 움직임을 구현하는 경우 적용하면 좋습니다. | 입력 값을 raw 데이터로 반환합니다. 입력 장치의 값을 그대로 가져오기 때문에 조금만 움직여도 -1 또는 1의 값으로 즉시 전환됩니다. 반응이 중요한 게임인 격투게임이나 리듬게임에 적용하면 좋습니다. |