본문으로 바로가기

Time.deltaTime

category 게임 엔진/Unity 2022. 1. 18. 06:29

기기마다 다른 프레임에 따라서 다른 이벤트 처리 속도를 해결하기 위해서 사용한다.

 

Ex) A 플레이어가 60 FPS, B 플레이어가 30 FPS환경에서 Update()를 사용하면 프레임 단위로 이벤트가 실행되기 때문에  

1초에  A 플레이어가 60번 이벤트 발생할 동안 B 플레이어는 30번 발생하기에 이러한 문제를 해결하기 위해 원하는 움직임에 Time.DeltaTime을 곱해서 사용한다.(FPS 보정 용도)

Description

지난 프레임이 완료되는 데 까지 걸린 시간을 나타내며, 단위는 초를 사용합니다. (읽기 전용)

사용자의 프레임 률(frame rate)을 독립적으로 적용하기 위해서 사용합니다.

매 프레임마다 어떤 값을 더하거나 빼는 계산을 하는 경우에, Time.deltaTime과 곱해서 사용할 수 있습니다. Time.deltaTime과 곱하는 경우에, 다음의 경우를 나타냅니다: 오브젝트를 프레임당 10미터가 아닌 초당 10미터 움직이고 싶은 경우를 나타냅니다.

MonoBehaviour의 FixedUpdate에서 호출되는 경우에, 고정 프레임률 delta Time을 반환합니다. OnGui 프레임당 여러 번 호출될 수 있고 deltaTime은 업데이트될 다음 프레임 전까지,

 

Note that you should not rely on Time.deltaTime from inside OnGUI since OnGUI can be called multiple times per frame and deltaTime would hold the same value each call, until next frame where it would be updated again.

 

Code

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    void Update() {
        float translation = Time.deltaTime * 10;
        transform.Translate(0, 0, translation);
    }
}

 

[출처 Unity3D Documentation] https://docs.unity3d.com/kr/530/ScriptReference/Time-deltaTime.html