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의 성능과는 무관하게 동등한 조건이 되게 되므로 반드시 필요하다.
'개발 > Unity & C#' 카테고리의 다른 글
[유니티] 게임 오브젝트가 화면 밖으로 못 나가게 하기 (1) | 2018.02.27 |
---|---|
[유니티] 마우스.. 드래그로 게임오브젝트 이동 (5) | 2018.02.26 |
[Unity] 게임오브젝트(GameObject) 유니티 내에서 불러오는 방법 (0) | 2018.02.21 |
[Unity] [Range(0, 12)]를 통해 유니티 Inspector에서 슬라이더 표시하기 (0) | 2018.02.14 |
[Unity] 유니티에서 enum 사용하기 (0) | 2018.02.14 |