오늘의 도착점
Unity의 용어를 외우는 대신, 두 번의 설명에서 구조를 이해하고 마지막 미션에서 각 구조의 역할을 직접 증명합니다.
- Project, Scene, GameObject, Component의 포함 관계를 설명할 수 있습니다.
- Scene, Game, Hierarchy, Inspector, Project 창을 목적에 맞게 사용할 수 있습니다.
- Transform과 부모-자식 관계를 이용해 오브젝트를 묶고 이동할 수 있습니다.
- Sorting Layer와 Order in Layer로 2D 오브젝트의 앞뒤 순서를 제어할 수 있습니다.
- Prefab Asset과 Instance를 만들고 원본 수정이 복제본에 반영되는지 확인할 수 있습니다.
세 교시의 역할
1교시와 2교시는 교수자가 이론과 원리를 설명하고 시연합니다. 학생이 직접 제작하는 시간은 3교시의 목표 지향 미션입니다.
Unity Editor의 구조를 읽습니다
- Editor의 여섯 창
Scene, Game, Hierarchy, Inspector, Project와 Console이 답하는 질문을 구분합니다.
- Unity의 핵심 구조
Project, Scene, GameObject, Component와 선택의 관계를 설명합니다.
- Asset과 저장
Project의 Asset과 Scene의 Instance를 비교하고 핵심 문장을 회수합니다.
장면 조립 원리를 설명하고 시연합니다
- Transform
Position, Rotation, Scale을 2D 장면의 주소, 방향과 크기로 설명합니다.
- 부모와 자식
Player와 DirectionMarker로 local 좌표와 함께 움직이는 관계를 시연합니다.
- Sprite 정렬
Sorting Layer와 Order in Layer가 해결하는 순서 문제를 비교합니다.
- Prefab 재사용
하나의 Asset, 세 Instance와 Override의 영향을 시연합니다.
목표를 보고 Playground를 완성합니다
- Scene
학기 프로젝트를 열고 Week02_Playground를 저장합니다.
- 움직임 단위
Player와 DirectionMarker를 부모와 자식으로 묶습니다.
- 보이는 순서
세 Sorting Layer로 장면의 겹침을 검증합니다.
- Prefab 재사용
하나의 Collectible 원본과 연결된 세 Instance를 배치합니다.
- 증명
5개 Step, Console 오류 0개, 두 화면과 설명 한 문장을 확인합니다.
Unity는 네 층으로 생각합니다
큰 단위에서 작은 단위로 내려가면 Unity Editor의 대부분을 같은 방식으로 읽을 수 있습니다.
Scene, Prefab, 이미지, 소리, Script와 설정을 담습니다.
레벨, 메뉴, 테스트 공간처럼 오브젝트가 놓이는 단위입니다.
플레이어, 카메라, 배경과 수집물의 이름과 정체성을 가집니다.
Transform은 위치를, Sprite Renderer는 화면 표시를 담당합니다.
파일과 원본 Asset
디스크에 저장되는 재료입니다. Scene 파일과 Prefab 원본은 프로젝트를 닫아도 남습니다.
Assets/Scenes/Week02_Playground.unity
현재 Scene의 Instance
열려 있는 Scene에 실제로 배치된 대상입니다. Hierarchy 수정은 Scene 저장이 필요합니다.
Collectible_01, Collectible_02, Collectible_03
여섯 창을 한 문장으로 구분합니다
창의 위치는 Layout에 따라 달라질 수 있습니다. 이름과 역할을 기준으로 찾습니다.
만드는 화면
GameObject를 선택하고 이동, 회전, 크기를 편집합니다.
질문: 어디에 놓을까?플레이어가 보는 화면
Main Camera가 촬영하는 최종 프레임을 확인합니다.
질문: 실제로 어떻게 보일까?현재 Scene의 목록
GameObject의 이름, 순서와 부모-자식 구조를 관리합니다.
선택한 대상의 속성
Transform과 Sprite Renderer 같은 Component 값을 편집합니다.
사용 가능한 Asset
Assets 폴더 안의 Scene, Prefab, 이미지와 Script를 관리합니다.
문제의 기록
오류, 경고와 실행 중 출력되는 메시지를 확인합니다.
선택의 경로를 따라갑니다
- Hierarchy에서
Main Camera를 선택합니다. - Inspector에서 Transform과 Camera Component를 찾습니다.
- Project 창에서 현재 Scene Asset을 선택하고 Inspector가 바뀌는지 확인합니다.
- 다시 Hierarchy의 Main Camera를 선택해 오브젝트 편집 상태로 돌아옵니다.
공통 프로젝트를 정확히 만듭니다
버전, 템플릿, 이름과 저장 위치가 같아야 수업 중 문제를 함께 해결할 수 있습니다.
1주 차에 설치한 버전을 선택합니다.
Core 범주의 2D URP 템플릿을 사용합니다.
학기 동안 이 프로젝트 하나만 사용합니다.
Location 경로를 복사해 CLI에서 그대로 사용합니다. 동기화 폴더는 피합니다.
- HubProjects → New project
Editor version이 수업 공지와 같은지 먼저 확인합니다.
- TemplateCore → Universal 2D
템플릿이 내려받아지지 않았다면 Download template 완료 후 선택합니다.
- NameGameEngine1
학기 프로젝트 이름입니다. 주마다 새 폴더를 만들지 않습니다.
- Location학생이 고른 작업 폴더
경로를 복사한 뒤 그 폴더에서
GameEngine1을 만듭니다. 클라우드 동기화 폴더와 다른 Unity 프로젝트 안은 피합니다. - CreateCreate project
Editor와 패키지 임포트가 끝날 때까지 창을 닫지 않습니다.
3교시는 목표와 통과 기준으로 운영합니다
교수자가 다시 조작 순서를 만들지 않습니다. 학생은 완성 목표를 해석하고 작업 경로를 선택하며, 교수자는 관찰과 질문으로 판단을 돕습니다.
목표와 제약만 제시합니다
필수 구조, 금지 범위와 60분 종료선을 함께 읽고 클릭 순서는 설명하지 않습니다.
선택의 이유를 질문합니다
정답을 대신 말하기보다 학생이 어떤 구조를 만들었고 무엇을 확인했는지 설명하게 합니다.
막힌 지점에만 힌트를 줍니다
관찰, 대상 선택, 원인 분리의 순서로 질문하고 필요한 힌트 하나만 열도록 안내합니다.
결과와 증거로 판정합니다
학생 페이지의 5개 Step, Console 오류 0개, 두 화면과 설명 한 문장을 함께 확인합니다.
부모는 묶고, 자식은 따라갑니다
부모-자식 관계는 파일을 폴더에 넣는 것이 아니라 Transform의 기준을 연결하는 일입니다.
- Main Camera
- Level
- Background
- Props
- Crate_01
- ForegroundBush
- Collectibles
- Collectible_01
- Collectible_02
- Collectible_03
- Player
- DirectionMarker
부모가 없을 때의 기준
Player의 Position은 Scene 전체 좌표를 기준으로 읽습니다.
부모가 있을 때의 기준
DirectionMarker의 Position은 Player 중심에서 떨어진 거리입니다.
부모 Transform의 영향
Player를 옮기면 DirectionMarker도 같은 거리와 방향으로 따라갑니다.
Level을 움직였다가 되돌립니다
Level의 X Position을 0에서 2로 바꾸고 모든 자식이 함께 이동하는지 봅니다. 확인 후 Undo하거나 Position을 다시 0으로 되돌립니다.
Player만 움직입니다
Player를 이동해 DirectionMarker가 함께 움직이는지 확인합니다. Marker의 local Position 값은 그대로 유지되어야 합니다.
Hierarchy 순서와 화면 순서는 다릅니다
2D Sprite의 앞뒤는 주로 Sprite Renderer의 Sorting Layer와 Order in Layer가 결정합니다.
Sorting Layer
큰 범주의 순서를 정합니다. Background, Actors, Foreground처럼 역할별로 나눕니다.
Order in Layer
같은 Sorting Layer 안에서 숫자가 큰 Sprite를 나중에 그려 위에 보이게 합니다.
Z Position
이번 실습에서는 모든 Sprite의 Z를 0으로 유지합니다. 앞뒤 문제를 Z 이동으로 숨기지 않습니다.
바닥 Sprite
플레이어 본체
Player 위에 표시
수집물 세 개
다른 Sprite를 가림
의도적으로 순서를 깨고 복구합니다
- Background를 Foreground Layer로 바꿔 다른 Sprite가 가려지는지 확인합니다.
- 즉시 Background Layer로 되돌립니다.
- DirectionMarker의 Order in Layer를
-1로 바꿔 Player 뒤로 숨는지 확인합니다. - Order in Layer를
1로 복구합니다.
Prefab은 복사가 아니라 연결된 원본입니다
같은 설정의 GameObject를 여러 번 사용하고 한 번에 고칠 때 Prefab의 가치가 드러납니다.
Project 창에 저장된 재사용 원본
Position -3, 1, 0
Position 0, 2, 0
Position 3, 0, 0
세 Instance가 함께 바뀝니다
Project 창의 Collectible Prefab을 열어 Sprite Renderer Color를 바꿉니다. Scene으로 돌아가 세 개가 모두 같은 색인지 확인합니다.
한 Instance만 다르게 만들 수 있습니다
Collectible_03의 Color만 바꿔 Override 표시를 확인합니다. Inspector의 Overrides에서 Revert해 원본 값으로 복구합니다.
저장, 실행, 종료를 구분합니다
Play Mode는 저장 명령이 아닙니다. 실행 전 저장하고, 실행 중 수정은 실험으로만 사용합니다.
Scene을 저장합니다
Ctrl/Cmd + S를 누르고 Scene 이름의 별표가 사라졌는지 확인합니다.
Game 뷰를 확인합니다
Play 버튼을 누른 뒤 배경, Player, Marker, 수집물과 겹침 순서를 확인합니다.
편집 상태로 돌아옵니다
Play 버튼을 다시 눌러 종료하고 Console의 빨간 오류가 0개인지 확인합니다.
Play Mode에서 Player를 옮깁니다
실행 중 Player Position을 바꾼 뒤 Play Mode를 종료합니다. 실행 전 위치로 돌아오면 정상입니다.
실행 중 변경은 기본적으로 종료할 때 사라집니다. 유지할 작업은 Edit Mode에서 하고 저장합니다.
- Scene Asset이
Assets/Scenes에 있습니다. - Player 아래에 DirectionMarker가 있습니다.
- Collectible 세 개가 같은 Prefab Asset에 연결되어 있습니다.
- Background, Actors, Foreground Sorting Layer가 적용되었습니다.
- Game 뷰의 겹침 순서가 의도와 같습니다.
- Console의 빨간 오류가 0개입니다.
설명할 수 있는지 확인합니다
답을 먼저 열지 않고 한 문장으로 말한 뒤 확인합니다.
Scene 창과 Game 창의 차이는 무엇인가요?
Scene 창은 제작자가 오브젝트를 배치하고 편집하는 공간입니다. Game 창은 활성 Camera를 통해 플레이어가 보게 될 화면입니다.
GameObject와 Component의 관계는 무엇인가요?
GameObject는 장면 속 대상의 기본 그릇이고, Component는 위치, 표시, 물리와 Script 같은 기능을 그 대상에 추가합니다.
자식의 Position이 부모를 기준으로 표시되는 이유는 무엇인가요?
부모-자식 관계가 Transform 기준을 연결하기 때문입니다. 자식의 Inspector Position은 부모에서 얼마나 떨어졌는지를 나타내는 local 좌표입니다.
Prefab과 일반 Duplicate의 가장 큰 차이는 무엇인가요?
Prefab Instance는 Project 창의 Prefab Asset과 연결됩니다. 일반 Duplicate끼리는 공통 원본이 없으므로 하나를 바꿔도 다른 복제본이 함께 바뀌지 않습니다.
막히면 증상부터 분리합니다
무작정 다시 만들기 전에 Project, Scene, Inspector, Game 또는 Console 중 어디의 문제인지 찾습니다.
Universal 2D 템플릿이 보이지 않습니다
Hub의 New project 화면에서 공지된 Editor version을 다시 선택합니다. Core 범주에서 템플릿 타일의 Download template를 완료합니다. 다른 2D 템플릿으로 임의 진행하지 않습니다.
2D Object 아래에 Square나 Circle이 없습니다
Window → Package Manager에서 2D Sprite 패키지가 설치되어 있는지 확인합니다. Universal 2D 템플릿 생성이 완전히 끝나기 전이라면 임포트 완료를 먼저 기다립니다.
Scene 창에서 오브젝트를 찾을 수 없습니다
Hierarchy에서 오브젝트를 선택하고 Scene 창에 마우스를 둔 뒤 F를 누릅니다. Inspector의 Transform 값이 지나치게 크거나 Z 값이 0이 아닌지도 확인합니다.
Scene에는 보이지만 Game에는 보이지 않습니다
Main Camera를 선택해 Game 뷰의 촬영 범위를 확인합니다. Sprite Renderer의 체크 상태, Color Alpha, Sorting Layer와 Camera의 위치도 차례로 확인합니다.
Background가 모든 오브젝트를 가립니다
Background의 Sprite Renderer에서 Sorting Layer를 Background로 되돌립니다. Z Position 이동으로 임시 해결하지 말고 Sorting Layer 설정을 수정합니다.
자식 오브젝트가 갑자기 멀리 이동했습니다
부모로 연결한 뒤 Inspector의 Position은 local 좌표입니다. 자식을 선택해 Transform을 Reset한 후 의도한 local Position을 다시 입력합니다.
Prefab 원본을 바꿔도 하나만 바뀝니다
Project 창에 파란 Prefab Asset이 있는지, Hierarchy의 대상이 Prefab Instance인지 확인합니다. 개별 Instance에 Override가 있으면 Overrides 메뉴에서 필요한 항목을 Revert합니다.
Play Mode에서 고친 값이 사라졌습니다
정상 동작입니다. Play Mode의 Scene 변경은 종료할 때 원래 상태로 돌아갑니다. 기억할 값을 기록한 뒤 Edit Mode에서 다시 적용하고 Scene을 저장합니다.
선택한 오브젝트 / 보고 있는 창 / 기대한 결과 / 실제 결과 / Console의 첫 빨간 오류
예: “Background의 Sorting Layer를 Background로 설정했지만 Game 뷰에서 Player가 안 보이고, Console 오류는 없습니다.”
종료 확인
완성된 모양보다 구조를 설명하고 다시 만들 수 있는지가 오늘의 기준입니다.
오늘 만든 Player와 Sprite Renderer를 예로 들어 한 문장으로 답합니다.
Collectible 세 개의 색과 Hierarchy의 Prefab 표시를 함께 확인합니다.
Scene 이름의 별표가 없고 Project 창에 Scene과 Prefab Asset이 있어야 합니다.
공식 자료
메뉴명이나 동작이 달라졌을 때에는 현재 Unity 공식 문서를 먼저 확인합니다.
- Create a new project ↗Unity Hub에서 Editor, 템플릿, 이름과 위치를 선택하는 절차
- Unity 에디터 ↗Editor 인터페이스와 주요 창의 공식 안내
- Hierarchy window ↗현재 Scene의 GameObject 확인과 관리
- 게임 오브젝트 소개 ↗GameObject와 Component의 관계
- 컴포넌트 소개 ↗Component 프로퍼티와 Transform의 기본 역할
- Transform ↗Position, Rotation, Scale과 부모 기준 local 좌표
- Scene 생성, 로드 및 저장 ↗Scene Asset과 저장 단축키
- 2D renderer sorting ↗Sorting Layer와 Order in Layer의 렌더 순서
- Prefab 생성 ↗Hierarchy의 GameObject를 Prefab Asset으로 만드는 방법
- Prefab 소개 ↗Prefab Asset, Instance와 Override의 관계