플레이어 입력과 분류 조작: 키보드·마우스·터치 확장 지점 만들기
8강. 플레이어 입력과 분류 조작: 키보드·마우스·터치 확장 지점 만들기
1. 이번 강의에서 해결할 문제
택배가 내려오지만 플레이어가 지점을 선택할 수 없습니다. 키 입력을 택배 코드에 직접 넣지 않고 입력 컴포넌트가 현재 택배에 이동 명령을 전달하게 만듭니다.
2. 학습 목표
3. 핵심 개념
Update에서 매 프레임 읽어야 하는 입력은 타당한 사용입니다. 그러나 이동 속도·경계 계산은 PackageActor 메서드에 두고 InputController는 축 값만 전달합니다. 공식 Input System 패키지는 후속 모바일 확장에서 선택할 수 있으며 설치 전 현재 Unity 버전 호환 문서를 확인합니다.
4. 단계별 실습
C# · 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
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. 핵심 요약
플레이어 입력과 분류 조작: 키보드·마우스·터치 확장 지점 만들기 미니 퀴즈
선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.
학습을 마쳤나요?
직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.