본문으로 건너뛰기
게임 프로젝트 기초집LESSON 08

플레이어 입력과 분류 조작: 키보드·마우스·터치 확장 지점 만들기

난이도초급 프로젝트
예상 시간50분
선수지식7강 택배 생성 시스템

8강. 플레이어 입력과 분류 조작: 키보드·마우스·터치 확장 지점 만들기

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

택배가 내려오지만 플레이어가 지점을 선택할 수 없습니다. 키 입력을 택배 코드에 직접 넣지 않고 입력 컴포넌트가 현재 택배에 이동 명령을 전달하게 만듭니다.

2. 학습 목표

3. 핵심 개념

Update에서 매 프레임 읽어야 하는 입력은 타당한 사용입니다. 그러나 이동 속도·경계 계산은 PackageActor 메서드에 두고 InputController는 축 값만 전달합니다. 공식 Input System 패키지는 후속 모바일 확장에서 선택할 수 있으며 설치 전 현재 Unity 버전 호환 문서를 확인합니다.

4. 단계별 실습

C# · PackageActor.cs에 추가

PackageActor.cs
private PlayfieldBounds bounds;

public void Initialize(PackageDefinition definition, float speed, PlayfieldBounds playfieldBounds)
{
Definition = definition;
fallSpeed = speed * definition.SpeedMultiplier;
bounds = playfieldBounds;
spriteRenderer.sprite = definition.Sprite;
spriteRenderer.color = definition.Color;
}

public void MoveHorizontal(float amount)
{
Vector3 position = transform.position;
position.x = bounds.ClampX(position.x + amount);
transform.position = position;
}

C# · 파일 경로: Assets/_Project/Scripts/Gameplay/PackageInputController.cs

PackageInputController.cs
using UnityEngine;

namespace DeliverySorter.Gameplay
{
public sealed class PackageInputController : MonoBehaviour
{
[SerializeField, Min(0.1f)] private float horizontalSpeed = 6f;
private PackageActor activePackage;
private bool inputEnabled;

public void SetActivePackage(PackageActor package) => activePackage = package;
public void SetInputEnabled(bool enabled) => inputEnabled = enabled;

private void Update()
{
if (!inputEnabled || activePackage == null) return;
float axis = Input.GetAxisRaw("Horizontal");
activePackage.MoveHorizontal(axis * horizontalSpeed * Time.deltaTime);
}
}
}

Unity Editor·Inspector 작업: Input GameObject에 PackageInputController를 붙입니다. Spawner가 생성 직후 input.SetActivePackage(package)를 호출하도록 Inspector 참조를 추가하고 PackageActor Initialize에 PlayfieldBounds를 전달합니다.

테스트 작업: A/D와 화살표로 좌우 이동하고 경계 밖으로 나가지 않는지 확인합니다. 마우스·터치는 SetActivePackageMoveHorizontal을 호출하는 별도 Adapter로 확장한다고 문서에 적습니다.

5. 코드가 동작하는 이유

InputController만 장치 입력 API를 알고 PackageActor는 이동 값만 받습니다. 나중에 Input System이나 터치 어댑터로 바꿔도 택배 이동·판정 코드는 유지됩니다.

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

7. 직접 실습

8. 이해 점검 질문 3개

9. 핵심 요약

MINI QUIZ

플레이어 입력과 분류 조작: 키보드·마우스·터치 확장 지점 만들기 미니 퀴즈

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

0 / 2
  1. 문제 1“플레이어 입력과 분류 조작: 키보드·마우스·터치 확장 지점 만들기”의 역할과 의존성을 판단하는 올바른 기준은 무엇인가요?
  2. 문제 2“플레이어 입력과 분류 조작: 키보드·마우스·터치 확장 지점 만들기”의 작업 기준으로 ‘매 프레임 Find로 택배 검색’을 진단하거나 바로잡은 선택은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

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

8강. 플레이어 입력과 분류 조작: 키보드·마우스·터치 확장 지점 만들기 미완료 상태