본문으로 건너뛰기
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강. 입력 처리 기초 미완료 상태