본문 바로가기
Unity 궁둥이 쪼물쪼물

001. Unity 환경 설정 & New Input System

by daco2020 2026. 4. 2.

Unity를 처음 열어서 New Input System을 설치하고 입력 설정을 만들기까지의 과정을 기록합니다.

 

 

1. 프로젝트 열기 - 첫 화면부터 당황

Unity Hub에서 프로젝트를 열면 처음에 빈 씬(Untitled)이 보인다.

 

 

그런데 과제에 나온 화면과 달라 당황했다. 과제용 씬이 따로 있는데 나는 이것조차 몰랐다. ㅎㅎ

하단 Project 탭 > Assets > Scenes > Assignment 를 더블클릭하니 과제용 씬이 열렸다.

 

 

새로운 씬을 불러올 때 "Scene(s) Have Been Modified" 팝업이 뜨는데, 빈 씬은 저장할 필요 없으니 Don't Save를 누르면 된다.

 

 

Unity 화면의 기본 구조

  • 씬(Scene) : 하나의 게임 화면/레벨, 여러 씬을 만들 수 있다
  • Hierarchy : 씬에 있는 모든 오브젝트 목록 (왼쪽)
  • Inspector : 선택한 오브젝트의 속성 창 (오른쪽)
  • Project 탭 : 프로젝트의 모든 파일 목록 (아래)

 

 

2. 과제 씬 구조 파악

Assignment 씬을 열면 미리 준비된 오브젝트들이 보인다.

 

 

왼쪽 Hierarchy 목록을 보면 미리 생성되어 있는 오브젝트들이 있는데, 이것들은 Unity가 기본으로 주는 게 아니라 XREAL 교육팀이 과제용으로 미리 만들어둔 것이다. 내부 자료이므로 구체적인 설정이나 내용은 언급하지 않겠다.

 

 

Inspector에서 본 Player의 기존 구성

 

 

처음 주어진 설정은 Rigidbody(물리 엔진으로 움직임을 제어하는 컴포넌트)로 되어 있었다. 이걸 CharacterController + New Input System으로 바꾸고 움직임을 구현하는 것이 이번 과제의 최종 목표이다.

 

 

 

3. New Input System 패키지 설치

패키지(Package)란?

누군가 미리 만들어둔 기능 묶음. 라이브러리와 같은 개념이다. 요리할 때 소스를 직접 만들 수도 있지만, 마트에서 완성된 소스를 사는 것처럼 미리 만들어둔 기능을 설치하여 사용할 수 있다.

Input System이란?

사용자가 키보드, 마우스, 게임패드 등을 눌렀을 때 그걸 감지하는 기능이다.

 

  Old Input (옛날 방식) New Input System (새 방식)
코드 예시 Input.GetKey(KeyCode.W) 설정 파일에서 키 매핑
키 변경 코드를 직접 수정해야 함 설정 파일만 바꾸면 됨
지원 기기 키보드/마우스 위주 키보드, 게임패드, VR 컨트롤러 등 다양

 

특히, New Input System은 키보드, 게임패드, VR 컨트롤러 등 다양한 입력 장치를 하나의 설정 파일로 관리할 수 있다는 장점이 있다.

 

 

설치 과정

  1. Window > Package Manager 에서 Input System 검색 후 Install
  2. Edit > Project Settings > Player > Other Settings 에서 Active Input Handling Both로 변경

 

Both로 한 이유: 카메라 코드(CameraControl.cs)가 아직 Old Input을 쓰고 있어서, 당장은 둘 다 켜두는 게 안전하다고 판단했다.

 

Active Input Handling 메뉴가 작게 표시되어 있어... 찾는데 한참 걸렸다..!

 

 

 

4. Input Actions 에셋 만들기

Input Actions 에셋이란?

"어떤 키를 누르면 어떤 동작을 할지"를 적어놓는 설정 파일이다. 코드에 직접 키를 쓰는 대신, 이 파일에서 키 매핑을 관리할 수 있다.

 

만드는 과정

  1. Project 탭 > Assets/Scripts 우클릭 → Create > Input Actions
  2. 이름: PlayerInputActions

 

Action Map과 Action 설정

Input Actions 에디터를 열면 세 영역이 있다:

  • Action Maps: 입력 그룹 (폴더 같은 것)
  • Actions: 각 입력 동작
  • Action Properties: 선택한 동작의 속성

 

 

Action 별 설정한 내용은 다음과 같다.

 

Action 이름 Action Type Control Type 바인딩한 키
Move Value (계속 변하는 값) Vector2 (2D 방향) W/A/S/D
Jump Button (누르는 순간) - Space

 

 

키 바인딩(연결) 방법

  • Move 액션에 Add Up/Down/Left/Right Composite 추가
  • 각 방향 클릭 → Path  Listen 버튼 → 원하는 키 누르기
  • Listen(듣기)은 "지금부터 네가 누르는 키를 감지할게"라는 뜻이다.

 

Action 이름은 아무 의미 없다!

처음 Action 의 이름을 Move, Jump 라고 적으면서 이름과 속성이 관련이 있나? 라는 의문이 들었다. 

 

하지만 Action 이름은 임의로 작성해도 상관이 없다는 걸 알게되었다. Input Actions가 하는 일은 "이 키가 눌렸는지 안 눌렸는지"를 감지하는 것이고, "눌렸을 때 뭘 할지"는 코드에서 구현한다.

 

다시 말해, 코드도 작성해야 한다는 이야기다.

 

 

C# 클래스 자동 생성

만든 Input Actions 에셋 선택 → Inspector에서 Generate C# Class 체크 → Apply → 코드에서 PlayerInputActions 클래스를 사용할 수 있게 된다.

 

 

 

여기까지 과정에서 느낀 점

  • Unity는 메뉴가 많아서 처음에 어디에 뭐가 있는지 찾기 어렵다
  • Project Settings와 Inspector는 다른 창이라는 걸 헷갈리기 쉽다
  • Input System의 핵심은 "키 감지"와 "동작 구현"이 분리된다는 것
  • 처음에 씬 뷰 카메라 조작법을 몰라서 계속 같은 각도의 화면만 보았다...

 

Scene 뷰 카메라 조작법 (Mac 기준)

처음에 Scene 뷰에서 카메라를 못 움직여서 답답했는데 찾아보니 의외로 쉬웠다...!

 

동작 조작법
회전  Option(⌥) + 드래그
이동 핸드 툴(Q) 선택 후, 드래그
두 손가락 앞으로/뒤로(터치패드)
오브젝트에 포커스 오브젝트 선택 후 F 키

 

 

다음에 계속...