
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 (구식)으로 키를 읽고 있을 때 발생
- Edit > Project Settings > Player > Other Settings
- Active Input Handling을 Both 또는 Input Manager (Old)로 변경
- 유니티 재시작
'Unity 게임 제작 > C#' 카테고리의 다른 글
| transform.position (0) | 2025.09.23 |
|---|---|
| [SerializeField] (0) | 2025.09.23 |