본문으로 건너뛰기

© 2026 Molayo

YouTube요약2026. 05. 27. 09:17

New Input System에서 GetKeyDown 사용하기 (초보자를 위한 Unity 6 튜토리얼)

요약

Unity 6의 New Input System에서 Input Actions 설정 없이도 GetKeyDown과 유사한 기능을 구현하는 방법을 설명합니다. Keyboard.current와 wasPressedThisFrame 등을 사용하여 초보자도 쉽고 빠르게 입력 테스트를 수행할 수 있는 튜토리얼입니다.

핵심 포인트

  • New Input System에서 Input Actions 없이 즉시 입력 확인 가능
  • Keyboard.current를 사용하여 현재 활성화된 키보드 참조
  • wasPressedThisFrame으로 GetKeyDown 기능 구현
  • isPressed로 키 누름 상태(Holding) 확인 가능
  • wasReleasedThisFrame으로 키 떼기(Release) 확인 가능

영상: New Input System에서 GetKeyDown 사용하기 (초보자를 위한 Unity 6 튜토리얼)
채널: SpeedTutor
재생 시간: 3분 59초
출처: 자막 (자동 생성, 영어)

안녕하세요 여러분, Mount입니다. SpeedTutor에 오신 것을 환영합니다. 만약 여러분이 Unity를 한동안 사용해 오셨다면, 기본적인 디버깅을 하거나 테스트를 위해 입력 코드를 작성하는 것이 기존의 구형 입력 시스템 (Old Input System)에서는 얼마나 쉬웠는지 기억하실 겁니다. 별도의 추가 노력 없이 바로 사용할 수 있었죠. if Input.GetKeyDown과 같이 간단한 코드를 사용하고 원하는 키 코드를 입력하면 눌린 동작 (Pressed action)을 수행할 수 있었고, 키를 누르고 있거나(Holding) 떼는(Release) 동작을 원한다면 GetKeyGetKeyUp을 작성할 수도 있었습니다.

Unity가 새로운 입력 시스템 (New Input System)을 출시했을 때, 많은 사람들이 이 기능이 빠졌다고 생각했을 것이고, Input Actions와 Player Input을 설정하는 등 훨씬 더 많은 번거로운 작업들을 해야 한다고 생각했을 것입니다. 하지만 사실 이를 수행하는 더 쉬운 방법이 있습니다. 만약 여러분이 초보자이고 단순히 무언가를 테스트하고 싶은 것이라면, 기존 방식이 그리 쉽지 않을 수 있습니다. Project Settings의 Player 항목으로 가서 Active Input Handling을 보면, 당연히 'Both'로 설정하거나 여전히 기존 방식을 사용하고 싶다면 'Old'로 설정할 수 있지만, 기본값은 'New'로 설정되어 있습니다. 하지만 언젠가 이 옵션이 사라질 수도 있으므로, 이 영상이 앞으로 나아가는 데 도움이 되는 완벽한 영상이 될 것입니다.

또한 그곳에는 실제로 Input System Actions 에셋도 들어있을 것입니다. 하지만 문제는 테스트를 위해 그것이 전혀 필요하지 않다는 점입니다. 여기 제 프로젝트에서 그것을 삭제할 수도 있습니다. 이제 먼저 예시를 보여드린 후 진행하면서 설명하겠습니다. 상단에 using UnityEngine.InputSystem;이라는 네임스페이스를 추가해야 합니다. 그런 다음 우리의 Update 메서드 내에서 여전히 if문을 사용할 수 있으며, 이 경우에는 Keyboard.current를 선택하겠습니다. 그리고 단순히 e 키가 이번 프레임에 눌렸는지(wasPressedThisFrame)를 확인하면 됩니다. 만약 그 아래에 wasReleasedThisFrame을 사용한다면, 눌렸을 때와 동일한 동작을 뗄 때 수행할 수 있습니다. 누르고 있는 동작 (Holding action)을 원한다면 isPressed를 사용하여 유사한 작업을 할 수 있습니다. 예를 들어 전력 질주 (Sprinting) 같은 동작 말이죠.

그리고 이번 프레임에 키가 떼어졌는지 확인하는 wasReleasedThisFrame을 사용할 수도 있는데, 이는 GetKeyUp과 유사합니다. 여기 사례를 보면, 제가 'e'를 누를 때 'e'가 눌렸음을 확인할 수 있습니다. 'g' 키의 경우, 'g'를 누르고 있으면 해당 동작이 수행되는 것을 볼 수 있고, 't' 키를 누르면 손가락을 뗄 때마다 't'가 떼어졌음을 확인할 수 있습니다. 다시 말씀드리지만, 이 방식은 이 프로젝트에 어떠한 입력 액션 (Input Actions)을 추가할 필요가 없으며, 즉시 바로 사용할 수 있습니다.

이제 제가 설명한 내용을 바탕으로 보면, Keyboard.current는 현재 활성화된 키보드 또는 우리가 사용할 활성화된 입력 장치 (Input Device)를 가져오는 것입니다. 'e' 키는 'g' 키나 't' 키와 마찬가지로 'e' 키에 대한 참조가 특정되어 있거나 하드코딩된 참조입니다. 설명란에 이 문서 페이지로 연결되는 링크를 남겨두도록 하겠습니다. 왜냐하면 여기서 가져올 수 있는 모든 키를 보여주기 때문입니다. 'a'부터 'z'까지의 모든 알파벳 키와 마찬가지로, 앞에 소문자를 붙여서 접근할 수 있습니다. Caps Lock 같은 키에 접근하고 싶을 때도 마찬가지입니다. 숫자에 접근하고 싶다면 digit 다음에 해당 숫자를 쓰고 키 자체를 입력하면 됩니다.

이제 키보드 대신 컨트롤러 (Controller)를 사용하고 싶을 때 어떻게 하는지 간단한 예시를 보여드리겠습니다. 만약 Gamepad.current를 사용한다면, 우리의 사례처럼 버튼을 사용하고 그 뒤에 wasPressedThisFrame을 붙여서 사용할 수 있습니다. 그러면 Xbox 컨트롤러와 같은 게임패드 (Gamepad)에서도 작동할 것입니다. 한 가지 주의할 점은, 다른 사람들이 이 기능을 사용할 때를 대비해 if (Keyboard.current != null) 또는 if (device.current != null)과 같이 확인하는 것이 좋습니다. 왜냐하면 어떤 입력 장치들은 사용하려고 할 때 존재하지 않을 수도 있기 때문입니다. 이 점을 유의하세요.

마지막으로, 이 방식은 디버깅 (Debugging), 테스트, 또는 즉석에서 무언가를 실행하기 위한 용도라는 점을 기억하세요. 새로운 입력 시스템의 입력 액션 (Input Actions)이 제공하는 리바인딩 (Rebinding), 컨트롤 스킴 (Control Schemes), 또는 추가적인 접근성 기능 (Accessibility features) 등은 전혀 포함되어 있지 않습니다.

이것은 단 한 줄의 코드만 작성하여 바로 시작할 수 있는 방법입니다. 그러니 이 팁이 도움이 되기를 바라며, 아래 댓글로 여러분의 생각을 알려주세요. 만약 이 영상이 마음에 드셨다면 꼭 '좋아요'를 눌러주시고, 궁금한 점이나 알고 싶은 것이 있다면 무엇이든 말씀해 주세요. 또한, 다른 어디에서도 찾을 수 없는 230개 이상의 다양한 스크립트(Scripts), 에셋(Assets), 프로젝트(Projects)를 제공하는 저의 Patreon도 꼭 확인해 보세요. 이 에셋과 Unity 및 게임 개발(Game dev)에서 찾을 수 있는 모든 멋진 세일 정보를 담은 아래 링크들도 모두 확인해 보시기 바랍니다. 저의 모든 후원자(Patrons)분들께 진심으로 감사드립니다. 놀라운 지원을 보내주신 Very Shooter님과 Party of 10님께 특별히 감사드립니다. 그리고 영상을 시청하러 와주신 모든 분들께도 감사드립니다.

그럼 이만.

건배.

AI 자동 생성 콘텐츠

본 콘텐츠는 YouTube SpeedTutor (Unity)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0