본문으로 건너뛰기
게임 프로젝트 기초집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와 화살표로 좌우 이동하고 경계 밖으로 나가지 않는지 확인합니다. 마우스·터치는 SetActivePackage와 MoveHorizontal을 호출하는 별도 Adapter로 확장한다고 문서에 적습니다.

5. 코드가 동작하는 이유​

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

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

7. 직접 실습​

8. 이해 점검 질문 3개​

9. 핵심 요약​

MINI QUIZ

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

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

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

학습을 마쳤나요?

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

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