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

Transform과 Vector

난이도초급
예상 시간35분
선수지식5강 Inspector 참조

6강. Transform과 Vector

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

택배는 아래로만 움직입니다. 플레이어가 분류 지점을 선택할 수 있도록 방향과 위치를 Vector로 표현하고 화면 경계를 적용합니다.

2. 학습 목표

3. 핵심 개념

위치는 좌표이고, 방향 벡터는 어느 쪽으로 얼마나 움직일지를 표현합니다. 새 위치는 현재 위치 + 방향 × 속도 × 시간입니다. Transform은 Vector3 위치를 사용하지만 2D 물리 계산에는 Vector2가 자주 쓰입니다.

4. 단계별 실습

C# · 파일 경로: Assets/DeliverySorter/Scripts/Packages/PackageMover.cs

PackageMover.cs
using UnityEngine;

public sealed class PackageMover : MonoBehaviour
{
[SerializeField, Min(0f)] private float fallSpeed = 2f;
[SerializeField, Min(0f)] private float horizontalSpeed = 6f;
[SerializeField] private Vector2 horizontalLimits = new Vector2(-4f, 4f);

private float horizontalInput;

public void SetHorizontalInput(float value)
{
horizontalInput = Mathf.Clamp(value, -1f, 1f);
}

private void Update()
{
Vector3 direction = new(horizontalInput, -1f, 0f);
Vector3 next = transform.position + direction * fallSpeed * Time.deltaTime;
next.x = Mathf.Clamp(next.x, horizontalLimits.x, horizontalLimits.y);
transform.position = next;
}
}

Inspector 연결 작업

  • Horizontal Limits를 카메라 안쪽인 -4, 4로 설정합니다.
  • 임시로 Start에서 SetHorizontalInput(1)을 호출해 오른쪽 아래로 이동하는지 확인한 뒤 제거합니다.

5. 코드가 동작하는 이유

매 프레임 방향 벡터를 현재 위치에 더해 이동합니다. Mathf.Clamp는 X가 최소·최대 범위를 넘지 않게 만들고 Z는 변경하지 않아 2D 카메라 평면을 유지합니다. 현재 코드는 수직과 수평에 같은 속도를 적용하므로 다음 실습에서 각 축 속도를 분리해 볼 수 있습니다.

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

7. 직접 실습

8. 이해 점검 질문 3개

9. 핵심 요약

MINI QUIZ

Transform과 Vector 미니 퀴즈

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

0 / 2
  1. 문제 1“Transform과 Vector”에서 다음 단계로 넘어가기 전에 확인할 핵심은 무엇인가요?
  2. 문제 2“Transform과 Vector”에서 ‘position을 방향 값으로 덮어씀’ 문제가 생겼습니다. 가장 알맞은 진단 또는 대응은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

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

6강. Transform과 Vector 미완료 상태