반응형

Delta Time

프레임이 완료되기 까지 걸린 시간

 

 

FPS(Frame Per Second) : 초당 프레임 수

 

30FPS를 유지할 수 있는 컴퓨터는, 30 frame per second, 초당 평균 30frame 유지한다는 뜻이고 다시말하면, 1프레임 처리하는데 1/30 초가 걸린다는 것을 의미하고, 60FPS를 유지할 수 있는 컴퓨터는 1프레임당 1/60 초가 걸린다는것을 의미, 여기서 1/30 , 1/60 들이 delta time 이다,

 

 

여기서 유니티엔진의 Update 함수(1프레임당 1 호출) 쓴다고 하면

어떤 캐릭터가 있고 캐릭터의 포지션을 1프레임당 Vector3 만큼 이동 시킨다고 할때, 로직대로 한다면, 평균 30FPS 인경우 초당 30 나아갈 것이고, 60FPS 인경우 60 나아갈 것이다, 이는 공평한 플레이를 제공하지 못한다, 그러나 평균 유지 프레임이 다른건 어쩔 수 없어도

초당 이동하는 거리가 어느 컴퓨터든지 동일하게 만들어야 한다 그리고 이를 위해서 DeltaTime 쓴다

 

여기서 Time.deltaTime 바로 프레임을 수행 하는데 걸린 게임시간, 한프레임당 걸리는 시간을 뜻하고, 평균 30FPS 인경우, 1/30 것이고, 평균 60FPS 인경우 1/60 될것이다

그리고 위와 같이 Vector3 곱해주면, 프레임당 걸리는 시간만큼 나눠주게 되고

초당 이동하는 거리가 어느 컴퓨터든지 동일하게 된다

평균 30FPS 인경우, 30 이동할 것이기 때문에, 1회만 이동한 거리와 같게 하려면

1/30 곱해서, 이동한 거리를 30등분하여, 30 회만큼 이동하더라도 1회만 이동한 거리와 같게 될것이다

반응형

+ Recent posts