기본 패턴
csharp
transform.Translate(Vector3.forward * speed * Time.deltaTime);설명
Time.deltaTime은 직전 프레임과 현재 프레임 사이에 흐른 시간입니다.- 같은 속도 값을 쓰더라도
deltaTime을 곱해야 프레임 수가 아닌 실제 시간 기준으로 움직이게 됩니다. - 쿨다운, 페이드, 이동, 회전, 게이지 감소처럼 시간 누적이 필요한 로직에 거의 기본처럼 붙습니다.
- 물리 계산은
FixedUpdate와fixedDeltaTime관점도 함께 생각해야 합니다.
짧은 예제
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