Menu
CoddyTech

타이머로 생성하기

Coddy Unity 여정의 Unity 스크립팅 기초 섹션에 포함된 레슨. 67개 중 49번째.

몇 초마다 무언가를 생성하는 생성기에는 타이머가 필요합니다. Time.deltaTime은 마지막 프레임이 걸린 시간이므로, 매 Update()마다 필드에 더하면 경과한 초를 알 수 있습니다. 합계가 간격에 도달하면 생성하고, 합계에서 간격을 뺍니다.

이 분수는 0.5초마다 물방울을 하나씩 뿜어냅니다.

public GameObject dropPrefab;
public float interval = 0.5f;
float timer;

void Update()
{
    timer += Time.deltaTime;
    if (timer >= interval)
    {
        Instantiate(dropPrefab, transform.position, Quaternion.identity);
        timer -= interval;
    }
}

timer -= interval은 남은 시간을 유지합니다. 프레임이 0.51초에 끝났다면 다음 0.5초는 0.01초부터 세기 시작하므로 물방울이 일정한 박자에 맞춰 떨어집니다. timer = 0으로 설정하면 남은 시간이 버려지므로 물방울이 매번 조금씩 늦게 떨어지고, 긴 게임에서는 지연이 누적됩니다. Inspector에서 timer를 설정할 필요가 없으므로 비공개 변수입니다.

challenge icon

챌린지

중급

Dropper는 interval초마다 상자를 하나씩 떨어뜨려야 합니다(Inspector에는 2라고 표시됨). 첫 번째 상자는 Play를 누른 후 2초 뒤에 떨어지고, 그다음부터는 2초마다 하나씩 더 떨어집니다.

  • 각 상자를 Dropper의 위치에 회전 없이 생성합니다.
  • 상자를 생성할 때마다 번호를 기록합니다: Box 1, Box 2 등.

Play를 누르고 상자가 쌓이는 모습을 지켜본 다음, Check를 누르세요.

직접 해보기

using UnityEngine;

public class BoxDropper : MonoBehaviour
{
    public GameObject boxPrefab;
    public float interval = 1f;

    void Update()
    {
        // interval초마다 상자를 떨어뜨리고 "Box 1", "Box 2"...를 로그에 기록합니다
    }
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

Unity 스크립팅 기초의 모든 레슨