Unity라이프사이클과 타이밍

Time.deltaTime 기본

프레임 속도와 무관하게 이동과 타이머를 계산하기 위한 `Time.deltaTime` 핵심 패턴을 정리합니다.

마지막 수정 2026년 3월 19일

기본 패턴

csharp
transform.Translate(Vector3.forward * speed * Time.deltaTime);

설명

  • Time.deltaTime은 직전 프레임과 현재 프레임 사이에 흐른 시간입니다.
  • 같은 속도 값을 쓰더라도 deltaTime을 곱해야 프레임 수가 아닌 실제 시간 기준으로 움직이게 됩니다.
  • 쿨다운, 페이드, 이동, 회전, 게이지 감소처럼 시간 누적이 필요한 로직에 거의 기본처럼 붙습니다.
  • 물리 계산은 FixedUpdatefixedDeltaTime 관점도 함께 생각해야 합니다.

짧은 예제

csharp
[SerializeField] private float duration = 3f;
private float elapsed;

private void Update()
{
    elapsed += Time.deltaTime;
    transform.Rotate(Vector3.up * 90f * Time.deltaTime);

    if (elapsed >= duration)
    {
        gameObject.SetActive(false);
    }
}

빠른 정리

항목설명
Time.deltaTime직전 프레임 이후 경과 시간
속도 계산speed * deltaTime
타이머 누적elapsed += deltaTime
프레임 독립성기기 성능 차이를 완화
물리 로직FixedUpdate와 함께 고려

주의할 점

deltaTime을 빼먹으면 빠른 기기에서는 더 빠르게, 느린 기기에서는 더 느리게 움직입니다. 속도와 시간을 분리해서 생각하는 습관이 중요합니다.

참고 링크

1 sources