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
0 / 2Transform과 Vector 미니 퀴즈
선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.
LESSON STATUS
6강. Transform과 Vector 미완료 상태학습을 마쳤나요?
직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.