본문으로 건너뛰기
Unity C# 기초집LESSON 08

입력 처리 기초

난이도초급
예상 시간40분
선수지식7강 시간 기반 이동

8강. 입력 처리 기초

1. 이번 강의에서 해결할 문제

PackageMover가 키보드와 터치 API까지 직접 읽으면 모바일 입력으로 바꿀 때 이동 코드도 수정해야 합니다. 입력 해석과 이동 명령을 분리합니다.

2. 학습 목표

3. 핵심 개념

이 과정은 입력 흐름을 먼저 보기 위해 기본 UnityEngine.Input 예시를 사용합니다. 프로젝트 설정이 새 Input System 전용이면 Package Manager와 Player 설정이 필요합니다. 확장성과 장치 지원이 필요할 때는 현재 에디터와 호환되는 공식 Input System 패키지로 같은 명령 인터페이스를 구현합니다.

4. 단계별 실습

C# · 파일 경로: Assets/DeliverySorter/Scripts/Input/PackageInputController.cs

PackageInputController.cs
using UnityEngine;

public sealed class PackageInputController : MonoBehaviour
{
[SerializeField] private PackageMover controlledPackage;
[SerializeField] private Camera worldCamera;

private void Awake()
{
if (worldCamera == null) worldCamera = Camera.main;
}

private void Update()
{
if (controlledPackage == null) return;

float keyboard = Input.GetAxisRaw("Horizontal");
if (Mathf.Abs(keyboard) > 0.01f)
{
controlledPackage.SetHorizontalInput(keyboard);
return;
}

bool pointerHeld = Input.GetMouseButton(0);
if (!pointerHeld || worldCamera == null)
{
controlledPackage.SetHorizontalInput(0f);
return;
}

Vector3 world = worldCamera.ScreenToWorldPoint(Input.mousePosition);
float direction = Mathf.Sign(world.x - controlledPackage.transform.position.x);
controlledPackage.SetHorizontalInput(direction);
}
}

Inspector 연결 작업

  1. Systems/InputController GameObject를 만들고 스크립트를 추가합니다.
  2. Controlled Package에 현재 PackagePrototype, World Camera에 Main Camera를 연결합니다.
  3. A/D 또는 방향키, 마우스 누름으로 좌우 이동을 확인합니다.
  4. 모바일에서는 마우스 API가 첫 터치를 모사할 수 있지만 멀티터치·UI 분리는 Input System으로 확장합니다.

5. 코드가 동작하는 이유

입력 클래스는 장치 값을 -1~1 이동 의도로 변환하고 PackageMover는 그 값이 키보드인지 터치인지 알지 못합니다. ScreenToWorldPoint는 화면 픽셀을 카메라 월드 좌표로 변환합니다.

6. 자주 하는 실수와 해결법

7. 직접 실습

8. 이해 점검 질문 3개

9. 핵심 요약

MINI QUIZ

입력 처리 기초 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“입력 처리 기초”에서 다음 단계로 넘어가기 전에 확인할 핵심은 무엇인가요?
  2. 문제 2‘입력 API와 이동을 한 클래스에 결합’ 상태에 관한 “입력 처리 기초” 본문의 설명으로 가장 알맞은 것은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

8강. 입력 처리 기초 미완료 상태