테트리스 강좌

초등학생도 쉽게 따라할 수 있는 Unity 테트리스 게임 개발 강좌 자료

1단계: Unity와 C# 기초

🎯 이 단계에서 배울 것

Unity 프로젝트 만들기 → 스크립트 작성 → 실행까지 (약 20~30분)


🔷 구분하기: 내가 만드는 것 vs 엔진(API)이 주는 것

매 단계마다 내가 확장하는 영역과 엔진에서 가져다 쓰는 것을 구분하면, 나중에 다른 게임을 만들 때도 헷갈리지 않습니다.

구분 이번 단계 예시 설명
내가 만드는 것 HelloWorld 클래스, Start() 안에 넣는 코드 우리가 작성하는 클래스·함수. “게임이 켜질 때 뭘 할지”를 우리가 정함.
엔진(API)이 주는 것 MonoBehaviour, Start(), Debug.Log Unity/C#이 미리 제공. 상속(: MonoBehaviour)하고 이름을 맞춰 쓰면 엔진이 알아서 호출해 줌.

왜 엔진 것을 쓰나?
게임이 “한 번 시작할 때” 뭔가 하려면, 엔진이 정해 둔 Start() 자리에 우리 코드를 넣어야 합니다. Debug.Log는 엔진이 제공하는 “콘솔 출력” 기능을 가져다 쓰는 것입니다. 우리는 그 안에 넣을 내용만 만듭니다.


📝 실습

1. 프로젝트 생성 (약 5분)

  1. Unity Hub 실행 → New Project → 2D 템플릿 선택
  2. Project name: Tetris 입력 → Create project 클릭
  3. 에디터가 열리면 Scene(읽는 법: 씬), Hierarchy(읽는 법: 하이어러키), Inspector(읽는 법: 인스펙터), Project(읽는 법: 프로젝트), Console(읽는 법: 콘솔) 창이 보임. 안 보이면 Window > Layouts > Default(읽는 법: 윈도우 → 레이아웃스 → 디폴트).
    → 전체 단어 발음은 영어 용어 발음·표기 에 한글 발음(읽는 법)으로 정리되어 있습니다. 발음기호 없이 한글만 보셔도 됩니다.


📌 위치 표기 규칙 (트리)
2~8단계 설명에서 어디를 눌러야 하는지 헷갈리지 않도록, 위치를 아래처럼 트리로 적습니다. 괄호 안이 창 > 항목 > 하위 항목 순서입니다. (규칙 전체: 1단계 - 위치 표기 규칙)

표기 의미
상단 씬 탭 에디터 맨 위, 씬 이름이 보이는 탭
[Hierarchy > 오브젝트명] Hierarchy(읽는 법: 하이어러키) 창에서 해당 오브젝트 한 번 클릭
[Hierarchy > 부모 > 자식] Hierarchy에서 부모를 펼친 뒤 자식 오브젝트
[Inspector > 컴포넌트명 > 필드명] 오브젝트 선택 시 오른쪽 Inspector(읽는 법: 인스펙터)에서 해당 컴포넌트·필드
[Project > Assets > 폴더 > 파일] Project(읽는 법: 프로젝트) 창에서 폴더를 연 뒤 해당 파일
[메뉴 > 하위메뉴] 상단 메뉴바 (File, GameObject, Window 등)

예: “[Hierarchy > GameBoard > BoardBackground] 선택” = Hierarchy 창에서 GameBoard를 펼치고 BoardBackground를 클릭.

2. 작업 씬 이름 확인 및 저장 (필수)

Unity가 처음 열리면 SimpleScene, SampleScene, Untitled 같은 기본 씬 이름이 붙어 있을 수 있습니다.
지금 작업하는 씬이 이 프로젝트(테트리스)에 맞는 씬인지 반드시 확인하고, 의미 있는 이름으로 저장해야 합니다.

  1. 상단 씬 탭을 확인하세요. (예: SampleScene, SimpleScene, Untitled 등이 보일 수 있음)
  2. Scenes 폴더 준비: Project 창에서 Assets 안에 Scenes 폴더가 없으면 우클릭 → Create → Folder → 이름: Scenes
  3. File → Save As (또는 Ctrl + S 후 첫 저장 시 Save As)
  4. 저장 위치: Assets/Scenes
  5. 파일 이름: Tetris (또는 TetrisGame) — SimpleScene, SampleScene 같은 이름 그대로 두지 마세요.
  6. Save 클릭

→ 이후 2~8단계를 진행할 때마다 “작업 씬 제차 확인”을 하세요. 매 단계 실습을 시작할 때마다 상단 씬 탭에서 지금 열린 씬이 Tetris인지 다시 한 번 확인하고, Tetris가 아니면 반드시 Tetris로 이름을 변경한 뒤 진행하세요.

📌 씬 이름 변경 방법 (Tetris가 아닐 때)

Tetris가 아닌 씬(SimpleScene, SampleScene, Untitled 등)으로 작업 중이면 반드시 Tetris로 바꾸세요. 아래 중 한 가지 방법으로 Tetris로 변경합니다.

방법 A: 이미 저장된 씬 파일 이름 바꾸기

  1. [Project > Assets > Scenes] 로 이동한다. (Project 창에서 Assets 클릭 → Scenes 폴더 클릭)
  2. 이름을 바꿀 씬 파일을 클릭해서 선택한다. (예: SampleScene, SimpleScene)
  3. F2 키를 누르거나, 우클릭 → Rename 을 선택한다.
  4. Tetris 라고 입력한 뒤 Enter 로 확정한다.
  5. 상단 씬 탭에서도 이름이 Tetris로 바뀌었는지 확인한다.

방법 B: 새 이름으로 다시 저장하기

  1. 메뉴 File → Save As 를 선택한다.
  2. 저장 위치: Assets/Scenes
  3. 파일 이름에 Tetris 를 입력한다.
  4. Save 를 클릭한다.
  5. (선택) 이전 이름의 씬 파일이 남아 있으면 Project에서 선택 후 Delete 로 삭제해도 된다.

→ 2~8단계 각 단계 문서에도 작업 씬 제차 확인이 있으니, 매 단계마다 씬 이름을 다시 한 번 확인하고 Tetris가 아니면 위 방법 A 또는 방법 B로 Tetris로 맞춰 주세요.

3. Scripts 폴더

  1. [Project > Assets] 에서 우클릭 → Create > Folder
  2. 폴더 이름을 Scripts로 변경 (F2 또는 더블클릭). 위치: [Project > Assets > Scripts]

4. 스크립트 만들기

  1. Scripts 폴더 선택 → 우클릭 → Create > C# Script → 이름 HelloWorld
  2. HelloWorld.cs 더블클릭해서 열기 → 아래 코드로 전체 교체
    📌 Visual Studio에서 “파일만” 열릴 때 → Unity에서 [Assets] → [Open C# Project] 로 열면 됩니다. .sln이 아예 없을 때는 Unity에서 [Edit] → [Preferences] → [External Tools] 로 가서 Regenerate project files 를 누르면 .sln이 생성됩니다. 자세한 순서는 Unity 에디터 사용 가이드 - 스크립트 편집기(Visual Studio)로 열기 참고.
using UnityEngine;

public class HelloWorld : MonoBehaviour
{
    void Start()
    {
        Debug.Log("안녕하세요, Unity!");
    }
}

💡 Start() = 게임이 켜질 때 한 번만 실행되는 함수. 여기서 초기화할 때 씁니다.

5. 실행하기

  1. Hierarchy 빈 공간 우클릭 → Create Empty
  2. Project에서 HelloWorld.cs를 Hierarchy의 GameObject 위로 드래그 (스크립트 추가)
  3. 상단 ▶ Play 클릭 → Console 창에 “안녕하세요, Unity!” 나오면 성공
  4. 다시 ▶ 눌러 정지

✅ 확인

💡 이번 단계 개념
변수 = 값을 넣어 두는 저장소. Start() = 게임 켜질 때 한 번만 실행.

📌 복기: 변수 = 값을 담는 저장소. 한 번에 이해 못했어도 괜찮아요. 변수 문서에서 다시 실습해 보세요.

📖 기초 개념 학습 (복기 → 점진적 실습)

📌 복기로 위 개념을 떠올린 뒤, 아래 기초 개념 문서에서 점진적으로 확장된 실습을 진행하세요. 단계가 올라갈수록 같은 개념이 조금씩 확장되므로, 차근차근 따라 하면 됩니다.

개념 문서 이번 단계와의 연결
변수 값을 저장하는 저장소. 문서 안 실습으로 변수에 값 넣고 출력해 보기
게임 루프 게임이 반복하는 흐름. Update()가 매 프레임 호출되는지 실습으로 확인
MonoBehaviour Start() / Update() 용도. Awake·Start·Update 실행 순서 실습

📐 이 단계 확장 실습 (전용 씬에서 점진적 연습): 1단계 확장 실습 01 - Start와 변수 출력
→ 단계별 확장 실습 전체 목차: 단계별 확장 실습 (목차)

(더 많은 기초 개념: 개념 설명 목차 — 표에서 항목을 클릭하면 해당 개념 문서로 이동)

📖 기초 개념 학습으로 이어가기

위 표의 기초 개념 학습을 우선 진행한 뒤, 필요할 때 활용하면 됩니다.


다음 단계: 2단계 - 게임 보드 만들기 →