[Unity] Time.deltaTime

반응형
반응형

[Unity] Time.deltaTime

#1 성능에 따라 달라지는 Update() 함수

#2 Time.deltaTime

 

*개인적인 공부 내용을 기록한 포스팅 이기에, 잘못된 내용이 있을 수 있습니다.


#1 성능에 따라 달라지는 Update() 함수

Unity의 Update() 함수는 매 프레임 마다 호출 되는데, 컴퓨터의 성능에 따라서 호출하는 횟수가 달라지게 됩니다.

따라서 성능이 좋은 컴퓨터는 1초당 30프레임을 호출하는 반면 느린 컴퓨터는 30프레임보다 적게 호출하게 되어 버립니다.

아래 예시 코드를 확인해 주세요.

int val = 0;

void Update(){
    val = val + 1;
    Debug.Log(val);
}

위와 같이 코드를 짜 버리면 컴퓨터의 성능에 따라서 val이 출력되는 횟수가 차이가 날 것입니다.


#2 Time.deltaTime

이때 Time.deltaTime 을 사용하면 이 문제를 해결할 수 있습니다.

Time.deltaTime 이란 전 프레임에서 현제 프레임 사이의 시간 입니다. 여기서 주의 깊게 보아야 할 부분은 "시간" 이라는 것 입니다. "시간"은 컴퓨터의 성능에 관계없이 항상 동일합니다. val = val + 1 부분을 val = val + 1 * Time.deltaTime 으로 바꾸어 주면, 컴퓨터의 성능에 관계없이 항상 1초에 val을 1번씩 출력하게 됩니다.

 

그래서, 대표적으로 이동을 수행하는 함수를 Update() 함수 안에서 정의할 때 Time.deltaTime을 속도 변수에 곱해서 모든 컴퓨터의 플레이어가 성능에 관계없이 동일한 이동속도를 가지도록 설정해 줍니다. 


반응형

댓글

Designed by JB FACTORY