Week 04 · Period 01 · Lecture

입력은 키가 아니라
의도입니다

W키와 게임패드 스틱은 모양이 다르지만 모두 “위로 이동한다”는 같은 뜻을 가질 수 있습니다. 장치의 신호를 게임 속 행동으로 번역하는 구조부터 정확히 이해합니다.

  • 운영교수자 설명 중심
  • 시간60분
  • 학생 활동관찰 · 예측 · 말로 설명
빈 방향키 묶음과 아날로그 스틱의 주황색 신호가 중앙의 청록색 2축 이동 행동으로 합쳐져 플레이어에 전달되는 모습
DEVICE가 달라도 ACTION이 같으면 게임 코드는 하나의 이동 의도로 읽습니다.

00 / ARRIVAL

1교시의 도착점

기능을 만드는 시간은 3교시입니다. 지금은 입력이 코드에 도착하기까지의 구조를 이해합니다.

  • 01

    Device, Control, Binding, Action을 서로 다른 말로 설명합니다.

  • 02

    왜 코드가 W키가 아니라 Move 행동을 읽어야 하는지 설명합니다.

  • 03

    상하좌우 입력을 Vector2 (x, y) 값으로 바꿔 읽습니다.

  • 04

    WASD, 방향키, 게임패드를 하나의 Action에 연결하는 이유를 설명합니다.

01 / RUN OF CLASS

60분의 설명 흐름

3주차의 자동 이동에서 출발해, 사용자의 의도가 물리 이동의 재료가 되는 지점까지 연결합니다.

00–60 min

입력을 행동으로 읽기

Lecture / professor-led

  1. 3주차와 연결

    자동으로 움직이던 오브젝트에 “누가 방향을 정하는가?”라는 질문을 더합니다.

  2. 입력의 네 층

    Device, Control, Binding, Action을 실제 예와 함께 분리합니다.

  3. Action Map

    여러 행동을 상황별 묶음으로 관리하는 이유를 설명합니다.

  4. Vector2

    상하좌우와 대각선을 두 축의 숫자로 읽고 크기를 비교합니다.

  5. Binding 설계

    WASD, 방향키, 왼쪽 스틱을 하나의 Move에 묶습니다.

  6. 회수 질문

    입력 신호가 Move 값이 되는 과정을 화면 없이 설명합니다.

02 / CONNECT

자동 이동에 ‘의도’를 끼워 넣습니다

3주차 코드는 방향이 항상 오른쪽으로 정해져 있었습니다. 이번 주에는 그 고정값을 사용자가 만든 값으로 바꿉니다.

Week 03 / automatic

Vector3.right

방향이 코드에 고정되어 있습니다. 사용자가 아무것도 하지 않아도 매 프레임 오른쪽으로 움직입니다.

Week 04 / interactive

moveInput

방향이 입력에서 옵니다. 입력이 없으면 (0, 0), 위를 누르면 (0, 1)이 됩니다.

사용자의 방향 의도초당 이동 속도물리 속도

03 / INPUT MODEL

키를 누른 순간부터 코드가 읽기까지

비슷해 보이는 단어를 “물건 → 부분 → 연결 규칙 → 게임 속 의미”의 순서로 정리합니다.

  1. 01
    Device

    키보드, 마우스, 게임패드처럼 입력을 만드는 장치입니다.

  2. 02
    Control

    W키, 방향키 위, 왼쪽 스틱처럼 장치 안의 한 조작부입니다.

  3. 03
    Binding

    특정 Control을 게임 속 Action에 연결하는 규칙입니다.

  4. 04
    Action

    Move, Jump처럼 게임이 이해하는 행동입니다.

  5. 05
    Code value

    코드는 Action이 만든 Vector2 값을 읽습니다.

물건Keyboard
조작부W key
연결Move / Up
결과값(0, 1)
핵심 규칙 게임 코드는 물리적인 키보다 행동의 의미에 의존할수록 바꾸기 쉽습니다.

04 / ACTIONS

Action Map은 ‘지금 가능한 행동’의 묶음입니다

Action 하나는 한 가지 의미를 나타내고, Action Map은 함께 켜고 끌 행동들을 모읍니다.

Input Actions AssetPlayerControls프로젝트의 입력 규칙을 저장하는 에셋
Action MapPlayer플레이 중 허용되는 행동 묶음
ActionMoveValue / Vector2
BindingsWASD · Arrows · Stick여러 조작부가 같은 행동에 연결됨
Action

무엇을 하려는가

Move라는 이름은 장치를 말하지 않습니다. 플레이어가 이동하려 한다는 게임의 언어입니다.

Binding

어떻게 그 뜻을 보낼까

WASD나 스틱은 Move를 만드는 여러 방법입니다. 나중에 키를 바꿔도 이동 코드는 그대로 둘 수 있습니다.

05 / VECTOR2

방향을 두 숫자로 표현합니다

Vector2는 X축과 Y축 값을 한 쌍으로 묶습니다. 부호는 방향을, 값의 크기는 입력의 세기를 나타냅니다.

조작XYVector2읽는 말
입력 없음00(0, 0)멈춤
오른쪽10(1, 0)X의 양의 방향
왼쪽-10(-1, 0)X의 음의 방향
01(0, 1)Y의 양의 방향
아래0-1(0, -1)Y의 음의 방향
오른쪽 위11(1, 1)두 축을 동시에 사용
Digital input

키보드

대체로 눌리지 않음은 0, 눌림은 1입니다. 방향에 따라 부호가 달라집니다.

(-1, 0, 1)
Analog input

게임패드 스틱

기울인 정도를 포함하므로 0과 1 사이의 소수도 나옵니다.

(0.42, 0.78)
대각선 주의 (1, 1)의 길이는 1보다 큽니다. 그대로 속도와 곱하면 대각선이 더 빨라질 수 있습니다.
Vector2.ClampMagnitude(value, 1f)

방향은 유지하면서 벡터의 길이만 최대 1로 제한합니다. 키보드 대각선과 아날로그 입력을 함께 다루기 좋습니다.

value.normalized

길이를 항상 1로 바꿉니다. 스틱을 조금 기울인 입력도 최대 세기가 되므로, 아날로그 강도를 보존하려면 주의합니다.

06 / BINDINGS

네 개의 키를 하나의 2D 값으로 합칩니다

키 하나는 한 축의 한 방향만 표현합니다. 2D Vector Composite는 네 키를 묶어 하나의 Vector2를 만듭니다.

BindingUpDownLeftRight출력
WASD / 2D VectorWSADMove / Vector2
Arrows / 2D Vector
GamepadLeft Stick
  1. 01

    Map
    Player

  2. 02

    Action
    Move

  3. 03

    Type
    Value / Vector2

  4. 04

    Bindings
    키 두 묶음 + 스틱

07 / READ A VALUE

코드는 Action의 현재값을 묻습니다

1교시에는 문법을 외우지 않습니다. 한 줄이 무엇을 요청하고 무엇을 돌려받는지만 읽습니다.

Concept preview · 다음 교시 코드의 한 줄
moveInput = moveAction.action.ReadValue<Vector2>();
moveInput = Vector2.ClampMagnitude(moveInput, 1f);
ReadValue<Vector2>()

Move Action이 지금 만든 값을 Vector2 형태로 읽습니다. 어떤 장치가 값을 만들었는지는 이 줄의 관심사가 아닙니다.

ClampMagnitude(..., 1f)

방향과 아날로그 세기는 보존하되, 길이가 1을 넘는 키보드 대각선만 제한합니다.

08 / RETRIEVAL

화면 없이 구조를 복원합니다

먼저 답을 말한 다음 펼쳐 확인합니다. 틀린 답은 실패가 아니라 다음 설명의 출발점입니다.

Q1. W키와 게임패드 스틱을 같은 Move에 연결하는 이유는?

물리적 조작은 다르지만 게임 속 의미가 모두 이동이기 때문입니다. 코드는 장치가 아니라 Move의 현재값만 읽을 수 있습니다.

Q2. 오른쪽과 위를 동시에 누르면 어떤 값인가?

오른쪽은 X가 1, 위는 Y가 1이므로 (1, 1)입니다. 길이가 1보다 커서 대각선 속도 제한이 필요합니다.

Q3. Action과 Binding의 차이는?

Action은 Move처럼 게임 속 의미이고, Binding은 W키나 스틱을 그 의미에 연결하는 규칙입니다.

Q4. 입력이 없을 때 Move의 값은?

(0, 0)입니다. 방향도 크기도 없으므로, 다음 교시의 물리 속도 역시 0이 됩니다.

01

Device는 ______이고, 그 안의 개별 조작부는 Control입니다.

02

Binding은 Control을 ______에 연결하는 규칙입니다.

03

코드는 Move Action이 만든 ______ 값을 읽습니다.

09 / OFFICIAL SOURCES

Unity 공식 자료

용어와 설정은 Unity 6.6 및 해당 Editor용 Input System 문서를 기준으로 정리했습니다.