본문 바로가기
Unity 게임 제작/C#

GetKey, KeyCode

by Yuriring 2025. 9. 23.

GetKey, KeyCode

if (Input.GetKey(KeyCode.Space))
{
Debug.Log("스페이스바 누르는 중!");
}
  • KeyCode.Space: 스페이스 바를 의미
  • Input.GetKey: 키를 누르고 있는 동안 true 반환

자주 쓰이는 KeyCode 예시

 

  • KeyCode.W / KeyCode.A / KeyCode.S / KeyCode.D → 이동 키
  • KeyCode.LeftArrow / KeyCode.RightArrow → 방향키
  • KeyCode.Space → 점프
  • KeyCode.LeftShift → 달리기

GetKey, GetKeyDown, GetKeyUp 차이

 

  • GetKey → 누르는 동안 계속 실행
  • GetKeyDown → 누르는 첫 순간 한 번만 실행
  • GetKeyUp → 손을 뗀 순간 한 번만 실행

예를 들어, 점프는 GetKeyDown으로, 대시 유지는 GetKey로, 차지 공격 해제는 GetKeyUp으로 구현하면 됨

키보드 조작으로 캐릭터 이동 예제 코드

[SerializeField] private float moveSpeed = 5f;

void Update()
{
    if (Input.GetKey(KeyCode.W))
        transform.position += Vector3.up * moveSpeed * Time.deltaTime;

    if (Input.GetKey(KeyCode.S))
        transform.position += Vector3.down * moveSpeed * Time.deltaTime;

    if (Input.GetKey(KeyCode.A))
        transform.position += Vector3.left * moveSpeed * Time.deltaTime;

    if (Input.GetKey(KeyCode.D))
        transform.position += Vector3.right * moveSpeed * Time.deltaTime;
}

 

이 코드를 사용하면 WASD 키로 캐릭터를 상하좌우 움직일 수 있음

만약 게임을 실행했을 때 키 입력이 안 먹힌다면

프로젝트가 새 Input System으로 설정되어 있는데, 코드에서 UnityEngine.Input (구식)으로 키를 읽고 있을 때 발생

  1. Edit > Project Settings > Player > Other Settings
  2. Active Input Handling을 Both 또는 Input Manager (Old)로 변경
  3. 유니티 재시작

'Unity 게임 제작 > C#' 카테고리의 다른 글

transform.position  (0) 2025.09.23
[SerializeField]  (0) 2025.09.23