테트리스 강좌

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

게임 루프 (Game Loop)

📖 개념 설명

게임은 계속 반복되는 루프입니다:

게임 시작
  ↓
사용자 입력 받기
  ↓
게임 상태 업데이트 (블록 이동, 낙하 등)
  ↓
화면 그리기
  ↓
다시 사용자 입력 받기...

Unity에서는 Update() 함수가 매 프레임마다 자동으로 호출되어 이 루프를 만듭니다.

예시: 테트리스에서 블록이 자동으로 떨어지는 것도 이 루프 덕분입니다.


🛠️ 실습: 게임 루프 확인하기

목표: Update()가 매 프레임마다 호출되는 것을 확인합니다.

이 실습 전용 씬 만들기 (환경 설정)

먼저 이 실습 전용 씬을 만든 뒤 아래 순서로 진행합니다. (자세한 씬 만드는 방법은 개념 실습 테스트 환경 가이드의 씬 만드는 방법 참고.)

이 실습만 할 전용 씬이 없으면 아래 순서로 한 번만 만듭니다. (이미 ConceptTest_GameLoop 씬이 있으면 File → Open Scene으로 열고 아래 실습만 이어서 하세요.)

  1. File → New Scene → Basic (Built-in) 또는 Empty → Create
  2. File → Save As → 저장 위치: Assets/Scenes → 파일 이름: ConceptTest_GameLoop → Save
  3. 아래 실습은 모두 이 씬에서 진행합니다. (다른 문서로 왔다 갔다 하지 않습니다.)

수행 과정

  1. Unity에서 새 C# 스크립트 생성
    • Project 창에서 Scripts 폴더 우클릭 → Create → C# Script
    • 이름: GameLoopTest
  2. 다음 코드 작성 ```csharp using UnityEngine;

public class GameLoopTest : MonoBehaviour { private int frameCount = 0;

void Start()
{
    Debug.Log("게임 시작! (Start는 한 번만 실행됨)");
}

void Update()
{
    frameCount++;
    // 60프레임마다 한 번만 출력 (너무 많이 출력되지 않도록)
    if (frameCount % 60 == 0)
    {
        Debug.Log($"Update 실행 중... ({(frameCount/60)}초 경과)");
    }
} } ```
  1. 빈 GameObject에 스크립트 추가
    • Hierarchy에서 우클릭 → Create Empty
    • GameLoopTest 스크립트를 드래그하여 추가
  2. Play 버튼 클릭 후 Console 확인
    • “게임 시작!” 메시지가 한 번 출력됨
    • “Update 실행 중…” 메시지가 매초 출력됨
    • → Update()가 매 프레임(초당 약 60회) 반복 호출되는 것을 확인!
  3. 정리: 게임이 돌아가는 동안 Update()가 계속 반복 호출되는 것이 게임 루프입니다.

← 개념 목록으로