Week 02 / Period 02 / Scene assembly

장면 구성과 Prefab 재사용

오브젝트의 위치, 계층, 화면 순서와 공통 원본을 차례로 바꾸며 무엇이 함께 움직이고 무엇이 함께 수정되는지 관찰합니다.

60분 / Component 구성 / 장면 조립 / 원리 확인

방향 표시가 붙은 캐릭터, 배경부터 전경까지 겹친 장면, 한 원본에서 나온 세 수집물을 보여 주는 픽셀 아트 작업대
붙이면 함께 움직이고, 순서를 정하면 의도대로 겹치며, 원본을 만들면 여러 번 재사용할 수 있습니다.
이 페이지에서
핵심 질문
하나를 바꾸면 어디까지 함께 달라지는가?
학습 방식
Property 변경, 결과 관찰, 원인 설명
핵심 개념
Component, Transform, sorting, Prefab
작업 Scene
Week02_Playground
관찰 기준
어느 Component의 값이 달라졌는가?
다음 교시
같은 Scene의 구성 완성과 검증
학습 목표 Component 속성과 장면 변화의 관계

1교시에는 GameObject가 여러 Component의 조합으로 기능을 얻는 구조를 확인했습니다. 이번 교시에는 작업 Scene을 저장하고 Sprite 이미지를 가져온 뒤, 한 번에 한 속성을 바꾸며 결과와 원인을 비교합니다. Transform에서 부모·자식 관계, Sprite 정렬과 Prefab 재사용으로 관찰 범위를 넓힙니다.

  1. 01Scene과 Sprite 준비

    Week02_Playground를 저장하고 투명 PNG를 Project에 추가합니다.

  2. 02Component 구성

    빈 GameObject에 Sprite Renderer를 추가해 공간과 시각 표현을 조합합니다.

  3. 03Transform

    Position, Rotation, Scale을 2D 장면의 주소, 방향, 크기로 설명합니다.

  4. 04부모와 자식

    Player와 DirectionMarker를 이용해 world와 local 좌표를 비교합니다.

  5. 05Sprite 정렬

    Sorting Layer와 Order in Layer를 큰 순서와 같은 층의 순서로 구분합니다.

  6. 06Prefab 재사용

    원본 Asset, 세 Instance와 한 Instance의 Override를 비교합니다.

  7. 07개념 연결과 저장

    네 개념의 역할을 구분하고 3교시에 이어 쓸 Scene과 Prefab을 저장합니다.

작업 Scene과 폴더 준비

1교시에 만든 GameEngine1 프로젝트를 그대로 사용합니다. 작업 Scene을 아래와 같이 저장하고, 2교시의 관찰과 3교시의 구성 실습을 같은 Scene에서 진행합니다.

  1. 01 프로젝트
    기존 프로젝트와 Scene 확인

    Unity Hub의 Projects에서 GameEngine1을 엽니다. 기본 SampleScene의 Main Camera와 기존 조명은 유지합니다. Play Mode가 켜져 있다면 종료합니다.

  2. 02 폴더
    Assets 하위 폴더 구성

    Project 창에서 Assets를 선택하고 우클릭 → Create → Folder로 Scenes, Sprites, Prefabs 폴더를 만듭니다. 이미 있는 폴더는 그대로 사용합니다.

  3. 03 Scene
    Week02_Playground 저장

    File → Save As에서 Assets/Scenes를 선택하고 Week02_Playground라는 이름으로 저장합니다. 이후 변경은 Ctrl/Cmd + S로 같은 파일에 저장합니다. 이미 이 Scene에서 작업 중이라면 Save As를 반복하지 않습니다.

Project 창에 같은 이름의 Scene이 이미 있다면 먼저 열어 내용을 확인합니다. 현재 편집 중인 장면의 변경 사항을 저장한 뒤 이동하고, 다른 작업이 담긴 파일을 덮어쓰지 않습니다.

실습용 Sprite와 프로젝트 가져오기

이번 실습에서는 아래 여섯 이미지를 사용합니다. 각 파일은 1:1 정사각형 캔버스의 투명 PNG이며, 하나의 오브젝트만 들어 있어 이미지를 나누는 작업 없이 사용할 수 있습니다. 정사각형은 파일의 비율이고, 실제로 보이는 모양은 캐릭터, 삼각형, 보석처럼 서로 다릅니다.

PNG 6종 · 각 1254 × 1254 px · 투명 배경 실습용 Sprite ZIP 다운로드 ↓
초록색 모자와 튜닉을 입은 모험가PNG 다운로드 ↓
Player장면의 중심 캐릭터
오른쪽을 가리키는 주황색 삼각형PNG 다운로드 ↓
DirectionMarkerPlayer의 자식 방향 표식
색상 변경 실습용 흰색과 회색 보석PNG 다운로드 ↓
CollectiblePrefab 재사용·색상 변경
위에서 본 평평한 정사각형 잔디 바탕PNG 다운로드 ↓
Background장면 뒤쪽의 잔디 바탕
낮고 넓게 퍼진 초록색 수풀PNG 다운로드 ↓
ForegroundBush앞뒤 겹침 확인용 수풀
각진 면이 있는 회색 바위PNG 다운로드 ↓
Rock선택 배치용 주변 오브젝트

체크무늬는 투명 영역을 보여 주는 웹페이지의 바탕이며 PNG에는 포함되지 않습니다. Background는 잔디 안쪽이 불투명하고 바깥 여백이 투명합니다. Collectible은 Sprite Renderer의 Color로 착색하기 쉽도록 무채색으로 준비했습니다.

PNG 파일 가져오기

  1. ZIP 다운로드와 압축 해제

    ZIP을 내려받고 Finder 또는 파일 탐색기에서 압축을 풉니다. 폴더 안에 PNG 여섯 개가 있는지 확인합니다.

    준비 파일Unity로 가져올 대상은 ZIP이 아니라 압축을 푼 PNG 파일입니다.
  2. Project 창의 Sprites 폴더 선택

    앞에서 준비한 Assets/Sprites 폴더를 Project 창에서 엽니다. PNG 파일을 이 폴더 안에 가져옵니다.

    저장 위치Assets/Sprites는 학기 프로젝트 안의 이미지 보관 폴더입니다.
  3. PNG의 Project 창 드래그 앤 드롭

    Finder 또는 파일 탐색기에서 PNG 여섯 개를 선택해 Unity Project 창의 Assets/Sprites 폴더 안으로 드래그 앤 드롭합니다. Unity가 파일을 프로젝트에 복사하고 가져오기 작업을 마치면 Project 창에 이미지가 나타납니다.

    Asset과 배치Project에 파일을 추가한 단계입니다. 아직 Scene에 GameObject를 배치한 것은 아닙니다.

Sprite 가져오기 설정

Project 창에서 PNG 여섯 개를 함께 선택하고 Inspector의 공통 설정을 아래와 같이 맞춘 뒤 Apply를 누릅니다. 항목이 접혀 있으면 펼쳐 확인합니다.

수업용 PNG의 공통 Import Settings
항목설정목적
Texture TypeSprite (2D and UI)이미지를 Sprite로 사용
Sprite ModeSingle파일 하나를 Sprite 하나로 사용
Pixels Per Unit1254캔버스 한 변을 Unity 1단위로 설정
Mesh Type / PivotFull Rect / Center전체 캔버스와 중심 기준 유지
Alpha SourceInput Texture AlphaPNG에 저장된 투명도 사용
Alpha Is Transparency투명한 경계의 색 번짐 완화
Filter ModePoint (no filter)픽셀 경계를 선명하게 표시
Max Size / Compression2048 / None원본 해상도와 색 유지

Pixels Per Unit은 이미지의 몇 픽셀을 Unity의 거리 1단위로 볼지 정하는 값입니다. 이 파일은 한 변이 1254픽셀이므로 1254로 설정하면 투명 여백을 포함한 캔버스 한 변이 1단위가 됩니다. 실제로 보이는 오브젝트는 여백만큼 더 작습니다. 이후 장면에서의 크기는 Transform의 Scale로 조절합니다.

이미지 Asset과 Sprite Renderer의 연결

PNG 파일은 모습에 대한 데이터입니다. 빈 GameObject에 Sprite Renderer를 추가하고 그 Sprite 칸에 Project의 이미지를 연결해야 Scene에서 그 모습을 사용할 수 있습니다. 다음 단계에서는 이 과정을 Player로 확인합니다.

GameObject의 Component 구성

빈 GameObject에는 Transform만 존재하므로 Scene 안의 위치는 있지만 화면에 그릴 모습은 없습니다. Player를 직접 만들고 Sprite Renderer를 추가해, Component의 조합이 GameObject의 역할을 어떻게 확장하는지 확인합니다.

  1. 빈 GameObject 생성

    Hierarchy의 +에서 Create Empty를 선택하고 이름을 Player로 바꿉니다. Inspector에는 Transform만 있으며 Scene과 Hierarchy에는 존재하지만 Game 뷰에는 아직 보이지 않습니다.

    관찰점GameObject의 존재와 시각적 표현은 서로 다른 조건입니다.
  2. Sprite Renderer 추가

    Inspector 아래의 Add Component에서 Sprite Renderer를 찾아 부착합니다. Component는 생겼지만 Sprite Property가 None이면 그릴 이미지가 없으므로 여전히 보이지 않습니다.

    관찰점Component의 존재와 Property의 설정을 함께 확인합니다.
  3. Sprite 연결

    Player를 선택한 상태에서 Project 창의 Assets/Sprites/Player.png를 Inspector의 Sprite Renderer 안에 있는 Sprite 칸으로 드래그 앤 드롭합니다. Color는 흰색, Alpha는 1, Transform Scale은 (1, 1, 1)로 둡니다. Game 뷰에 캐릭터가 나타나면 Transform은 공간을, Sprite Renderer는 시각 표현을 담당한다는 사실을 연결합니다.

    결과하나의 GameObject가 두 Component의 조합으로 보이는 Player가 됩니다.
Transform Component

공간 상태

Position, Rotation, Scale로 대상의 위치, 방향과 크기를 결정합니다. 모든 GameObject에 반드시 하나씩 존재합니다.

Sprite Renderer Component

시각 상태

Sprite, Color, Sorting Layer와 Order in Layer로 어떤 이미지를 어떻게 그릴지 결정합니다.

Scene 도구와 Transform 기즈모

Hierarchy 또는 Scene 뷰에서 GameObject를 선택하고 도구를 바꾸면, 선택한 도구에 맞는 기즈모가 오브젝트 주위에 나타납니다. 기즈모를 드래그하면 Inspector의 Transform 값도 함께 바뀌며, 반대로 Inspector에 숫자를 입력하면 Scene 뷰의 위치와 모양에 반영됩니다.

같은 오브젝트에 View, Move, Rotate, Scale 도구를 차례로 적용해 손 모양, 축 화살표, 회전 링과 크기 핸들의 차이를 보여 주는 픽셀 아트 개념도
Q · View
Scene을 바라보는 편집 시점 이동. 오브젝트의 Transform은 변경하지 않음
W · Move
화살표 축을 드래그해 Position 변경
E · Rotate
회전 링을 드래그해 Rotation 변경. 2D에서는 주로 Z축 사용
R · Scale
사각형 핸들을 드래그해 Scale 변경
기즈모 축 X · 빨강 · 좌우 Y · 초록 · 위아래 Z · 파랑 · 깊이

2D 장면에서는 주로 X와 Y를 움직이고, 회전은 화면을 관통하는 Z축을 사용합니다. 한 축의 화살표를 잡으면 그 축만 바뀌므로 값의 변화를 분리해 관찰하기 좋습니다.

관계의 확장

Player가 특별한 종류의 GameObject라서 보이고 움직이는 것이 아닙니다. 이번 교시에는 Transform과 Sprite Renderer의 조합으로 공간과 모습을 구성하고, 이후에는 Collider2D, Rigidbody2D와 Script를 더해 물리 반응과 조작 규칙을 확장합니다.

Transform의 위치, 회전, 크기

Transform은 GameObject가 Scene 안에서 어디에 있고, 어느 방향을 향하며, 얼마나 큰지를 저장합니다. 모든 GameObject에 반드시 존재하는 기본 Component입니다.

핵심 개념

Position은 주소, Rotation은 방향, Scale은 원래 크기에 곱하는 배율입니다.

2D Transform의 핵심 속성
항목2D에서의 의미이번 주 기준먼저 확인할 문제
Position X화면의 좌우 위치오른쪽은 양수, 왼쪽은 음수대상이 화면 좌우 어디에 있는가?
Position Y화면의 위아래 위치위쪽은 양수, 아래쪽은 음수카메라 촬영 범위 안에 있는가?
Position Z3D 공간의 깊이 위치모든 Sprite를 0에 둠Sprite 순서를 Z로 임시 해결하지 않았는가?
Rotation Z평면에서 도는 각도0에서 시작원하지 않게 기울어졌는가?
Scale X, Y가로와 세로 배율처음은 1, 1음수 또는 지나친 값이 들어갔는가?
Transform 원리 2D에서도 Transform은 X, Y, Z를 모두 가집니다. 이번 장면은 Z를 0으로 두고 보이는 앞뒤 순서는 Sprite Renderer에서 정합니다.
  1. Player의 X 위치 변경

    Inspector에서 Position X를 0, 2, -2로 바꾸며 좌우 이동을 확인합니다.

    예측 질문Y와 Scale은 바뀌지 않았을 때 화면에서 무엇만 달라질까요?
  2. 카메라 범위 밖의 실행 결과

    Edit Mode에서 Player를 카메라 프레임 밖으로 충분히 옮깁니다. 기본 카메라라면 Position X를 20으로 바꾼 뒤 Play를 눌러 Scene 뷰와 Game 뷰를 비교합니다. Scene에는 대상이 남아 있지만 Main Camera의 프러스텀 밖에 있으므로 실행 화면에는 그려지지 않습니다. Play를 멈춘 뒤 X를 0으로 되돌립니다.

    프러스텀 컬링카메라 밖의 Renderer를 그리기 전에 제외하는 과정이며, GameObject를 삭제하는 동작은 아닙니다.
  3. Z축 회전

    0에서 45로 바꾸고 평면에서 회전하는 축이 Z라는 사실을 연결합니다.

    관찰점2D 화면은 X와 Y 평면이고 그 평면을 관통하는 축을 중심으로 돕니다.
  4. Scale 초기값 복원

    X와 Y를 함께 1로 맞춘 뒤 Reset의 의미가 임의의 기본값이 아니라 Component의 초기값이라는 점을 설명합니다.

    관찰점문제가 생기면 한 값씩 바꾸고 바로 되돌려 원인을 분리합니다.

Scale 0과 오브젝트 삭제의 차이

Scale이 0이면 대상은 Hierarchy에 남아 있지만 화면에서 보이지 않습니다. 보이지 않는 Sprite를 찾을 때는 활성 상태, 카메라 범위, Sprite Renderer와 함께 Transform Scale을 확인합니다.

부모·자식 관계와 좌표 기준

Hierarchy에서 자식으로 묶는 것은 보기 좋게 정리하는 것에 그치지 않습니다. 자식의 Transform은 부모를 기준으로 해석되고, 부모가 움직이거나 돌거나 커지면 자식도 함께 영향을 받습니다.

Main Camera
Player
└── DirectionMarker
World position

장면 기준 위치

Scene의 원점에서 GameObject가 실제로 어디에 있는지 나타냅니다. 부모가 움직이면 자식의 world 위치도 달라집니다.

Local position

부모 기준 상대 위치

Inspector에 보이는 자식의 Position입니다. (0.65, 0, 0)은 부모 중심에서 오른쪽으로 0.65만큼 떨어졌다는 뜻입니다.

같은 게임 맵에서 캐릭터와 오른쪽의 삼각형 표식이 함께 이동한 전후 비교. 맵의 고정 기준점에서 표식까지 이어지는 노란 선은 길어지지만, 캐릭터와 표식을 잇는 하늘색 선의 길이와 방향은 그대로입니다.
캐릭터(Player)가 오른쪽으로 이동해도 자식 표식(DirectionMarker)은 같은 간격으로 따라옵니다. 노란 선으로 나타낸 월드 위치는 달라지지만, 하늘색 선으로 나타낸 부모 기준의 로컬 위치는 유지됩니다.
  1. Player와 DirectionMarker의 부모·자식 설정

    Player의 Rotation을 (0, 0, 0), Scale을 (1, 1, 1)로 맞춥니다. 빈 GameObject를 DirectionMarker로 지정하고 Sprite Renderer에 DirectionMarker.png를 연결합니다. Hierarchy에서 Player의 자식으로 묶은 뒤 local Position을 (0.65, 0, 0), local Rotation을 (0, 0, 0), local Scale을 (0.35, 0.35, 1)로 둡니다.

    관찰점Hierarchy의 들여쓰기는 Transform 관계를 나타냅니다.
  2. 부모 이동과 자식의 위치 변화

    Player의 Position X를 바꾸고 Marker가 같은 간격을 유지한 채 따라오는지 확인합니다.

    예측 질문Marker의 local Position 값은 바뀔까요, 그대로일까요?
  3. 부모 회전과 자식의 위치 변화

    Player의 Rotation Z를 바꾸어 Marker가 Player 중심을 기준으로 함께 도는 것을 보여 줍니다.

    관찰점자식은 부모의 이동뿐 아니라 회전과 크기에도 영향을 받습니다.
  4. 자식의 로컬 위치 변경

    Player는 그대로 두고 Marker의 값을 바꾸어 자식은 부모 안에서 독립적인 상대 위치도 가질 수 있음을 설명합니다.

    관찰점함께 움직인다는 말이 두 대상의 Transform 값이 같다는 뜻은 아닙니다.
계층 구조의 원리 부모는 자식의 좌표 기준입니다. 자식의 Inspector Position은 부모로부터 떨어진 상대 위치입니다.

부모·자식 관계의 구성 기준

Player와 방향 표시는 함께 움직여야 하므로 좋은 관계입니다. 단지 Hierarchy를 짧게 보이게 하려고 관련 없는 오브젝트를 부모와 자식으로 묶으면 예상하지 못한 이동과 크기 변화가 생깁니다.

2D Sprite의 앞뒤 관계와 렌더링 순서

2D 게임에서는 캐릭터와 배경을 주로 X축과 Y축으로 이루어진 평면에 배치합니다. 그렇다면 같은 평면에 놓인 이미지가 겹칠 때, 어떤 이미지를 앞에 표시하고 어떤 이미지를 뒤에 표시해야 할까요? 예를 들어 캐릭터는 배경보다 앞에 보여야 하지만, 화면 앞쪽의 수풀에는 일부가 가려져야 합니다.

Unity의 2D 장면에도 Z축은 존재합니다. 다만 이번 실습에서는 모든 Sprite의 Z Position을 0으로 맞추고, 깊이 차이 대신 화면에 그리는 순서로 앞뒤 관계를 정합니다. 종이 위에 배경을 먼저 그리고 캐릭터와 수풀을 차례로 덧그리면, 나중에 그린 부분이 먼저 그린 부분을 가리는 것과 같습니다.

이 순서를 설정하는 곳이 Sprite Renderer입니다. Sorting Layer로 배경, 캐릭터, 전경의 큰 순서를 나누고, Order in Layer로 같은 레이어 안의 세부 순서를 지정합니다.

배경과 전경 구성

앞서 Player를 구성한 방식으로 Background와 ForegroundBush를 만들고 각각 Background.png, ForegroundBush.png를 연결합니다. 배경의 Scale은 카메라 범위를 덮도록 키우고, 수풀은 Player 일부와 겹치도록 배치해 정렬 결과를 비교합니다. Rock.png는 주변 오브젝트를 추가할 때 선택해서 사용합니다.

Sorting Layer 생성과 지정

Edit → Project Settings → Tags and Layers를 열고 Sorting Layers+ 버튼으로 Background, Actors, Foreground를 추가합니다. 이미 있다면 중복 생성하지 않고 목록 위에서 아래로 Background → Actors → Foreground 순서인지 확인합니다. 기본 Default 항목은 유지해도 됩니다.

목록 아래쪽 Sorting Layer가 앞에 그려집니다. 이제 각 GameObject를 선택하고 Inspector의 Sprite Renderer에서 Sorting Layer를 지정합니다. GameObject 상단의 일반 Layer가 아니라, 이미지를 그리는 순서를 정하는 Component 속성입니다.

Background먼저 그리는 바탕
Actors그 위에 놓이는 Player와 방향 표시
Foreground마지막에 그려 장면 앞을 가리는 요소
Sorting Layer

레이어 간 정렬 순서

Background, Actors, Foreground처럼 역할이 다른 묶음 사이의 우선순위를 정합니다.

Order in Layer

레이어 내부 정렬 순서

같은 Sorting Layer라면 숫자가 큰 Sprite가 나중에 그려져 앞에 보입니다. Player가 0이면 Marker는 1로 둡니다.

Sprite 정렬 설정 예시
GameObjectSorting LayerOrder in Layer화면 결과
BackgroundBackground0모든 대상의 뒤에 보임
PlayerActors0배경 위에 보임
DirectionMarkerActors1Player 위에 보임
ForegroundBushForeground0다른 Sprite의 일부를 가림
  1. Sprite의 Z 위치 통일

    깊이 값을 섞지 않고 Sprite Renderer의 정렬 설정만으로 결과를 비교할 준비를 합니다.

    관찰점이번 수업의 변수는 정렬 설정 하나로 제한합니다.
  2. Background의 Sorting Layer 변경

    배경이 Player를 가리는 실패를 일부러 만들고 어느 Property가 원인인지 확인합니다.

    예측 질문Z를 옮기지 않고 어느 Component의 어떤 값을 고쳐야 할까요?
  3. Marker의 Order in Layer 변경

    1-1을 비교해 같은 Actors Layer 안의 세부 순서를 보여 줍니다.

    관찰점큰 범주는 Layer, 같은 범주의 세부 순서는 Order입니다.

Z 위치와 Sprite 정렬의 구분

Z Position은 깊이 방향의 위치이고, Sorting LayerOrder in Layer는 Sprite를 그리는 순서를 지정하는 설정입니다. 이번 실습에서는 모든 Sprite의 Z를 0으로 유지해, 정렬 설정에 따라 겹침 결과가 어떻게 달라지는지 확인합니다.

Prefab Asset과 Instance의 관계

같은 GameObject와 Component 조합을 여러 번 배치하고 공통 부분을 한 번에 고치려면 원본 Asset이 필요합니다. Prefab Asset은 Component 구성과 값을 저장한 설계도이고 Scene의 Instance는 그 설계도를 사용한 배치본입니다.

하나의 보석 설계도와 맵의 세 보석이 하늘색 선으로 연결된 전후 비교. 설계도의 보석을 파란색에서 금색으로 바꾸자, 서로 다른 위치에 놓인 세 보석도 자리는 그대로인 채 모두 금색으로 바뀝니다.
설계도는 Project의 Prefab Asset, 맵의 세 보석은 Scene의 Instance를 나타냅니다. 원본의 색을 바꾸면 세 인스턴스는 각자의 위치를 유지하면서 같은 색으로 바뀝니다. 개별 인스턴스에 색상 Override가 없는 경우입니다.
Prefab Asset
Project 창에 저장된 원본입니다. 공통 Sprite, Color, Scale와 자식 구조를 정의할 수 있습니다.
Prefab Instance
Scene에 배치된 사용본입니다. 같은 원본에 연결되면서도 Position처럼 배치마다 달라야 하는 값을 가질 수 있습니다.
Override
특정 Instance에서 원본과 다르게 바꾼 값입니다. 의도한 차이는 유지하고, 실수로 만든 차이는 Revert해 원본 값으로 되돌립니다.
Apply
Instance의 변경을 원본에 반영하는 동작입니다. 다른 Instance에도 영향을 줄 수 있으므로 영향 범위를 알고 사용할 때만 선택합니다.
  1. Collectible 구성

    빈 GameObject를 Collectible로 지정하고 Sprite Renderer에 Collectible.png를 연결합니다. Scale은 (0.6, 0.6, 1), Position Z는 0으로 둡니다. 앞에서 만든 Sorting Layer Actors와 Order in Layer 0을 적용하고 Color를 원하는 색으로 설정합니다. 무채색 보석이므로 색의 변화를 비교하기 쉽습니다.

    관찰점아직은 Hierarchy에만 있는 일반 GameObject입니다.
  2. Prefab Asset 생성

    Project 창에서 작업 준비 단계에 만든 Assets/Prefabs 폴더를 엽니다. Hierarchy의 Collectible을 이 폴더 안으로 드래그 앤 드롭합니다. Collectible.prefab Asset이 생성되고, Scene에 남은 대상은 첫 Instance가 됩니다.

    관찰점Project 창에 원본이 생기고 Scene의 대상은 Instance가 됩니다.
  3. Prefab Instance 배치

    Project의 Collectible.prefab을 Scene으로 두 번 더 드래그해 첫 Instance와 함께 총 세 개를 만듭니다. 이름을 Collectible_01, Collectible_02, Collectible_03으로 지정하고 카메라 범위 안의 서로 다른 위치에 둡니다.

    예측 질문원본의 Color를 바꾸면 세 Instance는 어떻게 될까요?
  4. 원본 변경과 Override 비교

    Project의 Prefab Asset을 더블클릭해 Prefab Mode로 열고 Sprite Renderer의 Color를 바꿉니다. 저장 후 Scene으로 돌아와 세 Instance의 공통 변경을 확인합니다. 이어서 한 Instance의 Color만 다르게 설정한 뒤 해당 속성만 Revert해 원본 값으로 복원합니다.

    관찰점공통값과 개별값을 구분하는 것이 Prefab 사용의 핵심입니다.
설명 비유

일반 Duplicate는 서로 모르는 복사본이고, Prefab Instance는 같은 설계도를 계속 참조하는 제품입니다.

일반 복제와 Prefab Instance의 차이

일반 GameObject를 세 번 Duplicate하면 처음 모습은 같아도 공통 원본이 없습니다. Project 창의 Prefab Asset과 연결된 Instance인지 Hierarchy의 표시와 Inspector의 Prefab 정보를 확인합니다.

장면 구성 개념의 통합

Transform, 계층, Sprite 정렬과 Prefab은 서로 경쟁하는 기능이 아닙니다. 각각 공간, 관계, 보이는 순서와 재사용이라는 다른 문제를 해결합니다.

장면 구성 요소별 역할
장면의 질문사용할 구조관찰할 값
Player를 오른쪽으로 옮기려면?TransformPlayer의 Position X
방향 표시가 Player를 따라오게 하려면?부모와 자식DirectionMarker의 local Position
Marker를 Player보다 앞에 보이게 하려면?Sprite 정렬Actors Layer의 Order in Layer
같은 Collectible을 세 번 쓰려면?Prefab하나의 Asset과 세 Instance
핵심 정리 Transform은 한 대상의 공간, 부모와 자식은 대상 사이의 기준, Sorting은 화면의 순서, Prefab은 여러 대상의 공통 원본을 관리합니다.

학습 내용 점검

정답을 열기 전에 결과가 달라지는 이유를 한 문장으로 정리하고, 제시된 설명과 비교합니다.

Player를 옮길 때 DirectionMarker가 같은 간격으로 따라오는 이유는 무엇인가요?

DirectionMarker가 Player의 자식이고, Inspector의 Position이 Player를 기준으로 한 local 위치이기 때문입니다. 부모가 움직이면 자식의 world 위치도 함께 달라집니다.

Sorting Layer와 Order in Layer는 어떻게 다른가요?

Sorting Layer는 Background, Actors, Foreground처럼 큰 범주의 순서를 정하고, Order in Layer는 같은 Sorting Layer 안에서 숫자로 세부 순서를 정합니다.

일반 Duplicate 세 개와 Prefab Instance 세 개의 차이는 무엇인가요?

Prefab Instance는 Project 창의 하나의 Prefab Asset과 연결되어 공통 변경을 공유합니다. 일반 Duplicate는 서로 연결된 원본이 없으므로 하나를 바꿔도 나머지가 함께 바뀌지 않습니다.

이번 미션에서 모든 Sprite의 Z Position을 0으로 두는 이유는 무엇인가요?

2D의 보이는 순서를 Sprite Renderer의 Sorting Layer와 Order in Layer라는 명시적인 규칙 하나로 관리하기 위해서입니다.

작업 상태 정리

2교시에는 속성을 하나씩 바꾸며 결과와 원인을 비교했습니다. 관찰한 상태를 아래 기준으로 정리해 저장합니다. 3교시에는 같은 Scene에서 자신의 배치를 구성하고 전체 결과를 검증합니다.

편집 상태
Play Mode 종료. Player의 Rotation (0, 0, 0)과 Scale (1, 1, 1)을 확인하고, 주요 대상을 카메라 범위 안에 배치.
부모·자식 관계
Player 아래 DirectionMarker. Marker의 local Position (0.65, 0, 0), local Rotation (0, 0, 0), local Scale (0.35, 0.35, 1) 확인.
정렬과 재사용
배경·대상·전경의 정렬 복원, Marker의 Order 1 확인. 같은 Collectible.prefab에 연결된 세 Instance와 공통 Color 유지.
저장 파일
변경한 Prefab 원본 저장. Assets/Scenes/Week02_Playground.unityCtrl/Cmd + S로 저장하고 Scene 이름의 별표가 사라졌는지 확인.

Unity 공식 문서

버전별 화면 차이가 있으면 메뉴의 시각적 위치보다 Component 이름과 공식 개념을 우선합니다.

Next period3교시: Week02_Playground 구성 실습
같은 Scene으로 3교시 실습 →