본문 바로가기

게임 개발/Unity

Time.deltaTime

유니티에서 플레이어를 조작하기 위해 가장 기본적인 코드 중 하나인 움직임과 관련된 코드에서 Time.deltaTime을 사용하는 것을 알 수 있다.

이때 Time.deltaTime은 어떤 역할을 하기에 움직임을 부드럽게 만드는 것일까?

 

void Update()
{
    
    if (Input.GetKey(KeyCode.W))
        transform.position += Vector3.forward * Time.deltaTime * speed;
    if (Input.GetKey(KeyCode.A))
        transform.position += Vector3.back * Time.deltaTime * speed;
    if (Input.GetKey(KeyCode.S))
        transform.position += Vector3.left * Time.deltaTime * speed;
    if (Input.GetKey(KeyCode.D))
        transform.position += Vector3.right * Time.deltaTime * speed;
}

Time.deltaTime은 각 프레임간 시간 차이를 말한다.

어떤 프레임은 0.016초(60fps) 걸리고, 어떤 프레임은 0.033초(30fps) 걸릴 것이다.

만약 프레임 당 일정한 거리를 이동하게 하면, 프레임 속도에 따라 움직임을 표현할 수 있게 된다.

 

따라서 플레이어의 이동속도를 5라고 설정했다면 60fps라고 가정했을 때 Time.deltaTime을 사용한다면 5*0.016만큼 이동하게된다.

'게임 개발 > Unity' 카테고리의 다른 글

Unity 코드 기본 템플릿 변경  (0) 2024.06.27