'Update 함수'에 해당되는 글 1건

  1. 2018.02.21 [유니티] Time.deltaTime의 의미와 사용방법 2

FPS = Frames Per Second(초당 프레임 횟수)


즉, 1초에 출력, 만들어낼 수 있는 프레임 횟수를 뜻한다.


PC의 성능에 따라 FPS는 다를 수밖에 없다.


성능이 뛰어난 컴퓨터는 1초에 100FPS가 날 수도 있고,


후진 고물 컴퓨터는 1초에 5FPS일 수도 있다.


이럴경우, 총싸움을 하면 어떻게 될까?


예를들어, 1초에 100발이 나가는 사람과 1초에 5발이 나가는 사람이 싸운다면?


말이 안된다. 게다가 게임 성능에도 매우 좋지 않다. 큰 리소스를 잡아먹는다.


따라서, 성능에 무관하게 Time.deltatime으로 두 사용자가 동일한 FPS 결과값을 보장하게 한다.



Time.deltaTime의 의미는 다음과 같다.


이전 프레임에서 현재 프레임까지 걸린 시간이다.


만약,


int speed=1; 


void Update(){ 

      shotBullet += speed; 



정리하면, 


슈퍼 컴퓨터는 1초에 1000프레임이라고 가정하자.


그러면 Time.deltaTime는 1/1000(1000분의 1)이다.


이것을 곱하면  1000 * speed * 1/1000 이므로  = speed만 남는다.

 


게임용 일반 컴퓨터는 1초에 80프레임이라고 가정하자.


그러면 Time.deltaTime는 1/80(80분의 1)이다.


이것을 곱하면  80 * speed * 1/80 이므로  = speed만 남는다.



10년이 지난 구린 컴퓨터는 1초에 20프레임이라고 가정하자.


그러면 Time.deltaTime는 1/20(20분의 1)이다.


이것을 곱하면  20 * speed * 1/20 이므로  = speed만 남는다.



결론 : Time.deltaTime을 이용하면, PC의 성능과는 무관하게 동등한 조건이 되게 되므로 반드시 필요하다. 

Posted by sungho88
,