Unity deltaTime
deltaTime이란?
마지막 프레임이 완료된 후 경과한 시간을 초 단위로 반환하는 기능
프레임은 무엇인가?
애니메이션과 같은 연속된 사진 중 정지된 사진 한장을 프레임이라고 한다.
그래서 초당 몇 프레임을 뽑아낼 수 있는지를 나타내는 단어가 FPS 즉, Frames Per Second(초당 프레임) 다.
위에 두 개념을 보고 완벽하게 이해하기란 쉽지않다. 그래서 쉬운 예로 설명하고자 한다.
1. 10FPS가 가능한 컴퓨터
2. 120FPS가 가능한 컴퓨터
이렇게 두 개의 컴퓨터가 있다고 가정해보자.
1번 컴퓨터는 성능이 너무 안좋아서 실제 시간 10초가 지나야만 게임캐릭터가 한걸음 움직인다.
2번 컴퓨터는 성능이 좋아서 실제시간 1초만 지나도 게임캐릭터가 한걸음 움직인다.
하지만 결국 두 컴퓨터는 모두 똑같은 거리를 가야 올바른 게임이다.
하지만 유니티의 Update문은 1프레임 당 호출되기 때문에 위의 경우에서 1번 컴퓨터는 1초당 10번 호출하고 2번 컴퓨터는 1초당 120번을 호출하기 때문에 둘의 게임결과가 달라지는 경우가 발생한다.
그리하여 위의 개념을 다시금 상기해보면 "마지막 프레임" 이 완료되고 "초" 단위로 바꿔준다고 한다.
1번 컴퓨터의 마지막 10프레임이 끝나고 1초로 반환, 2번 컴퓨터의 마지막 120프레임이 끝나고 1초로 반환해준다.
이러한 결과로 인해 프레임의 차이가 나도 똑같은 "초" 로 반환되기 때문에 게임의 결과가 달라지지 않는다.
회고
deltaTime을 예전엔 단순히 시간이 올라가는 타이머용도로 썼는데 개념을 찾아보니 훨씬 중요한
기능이었다. Time과 관련된 기능을 더 찾아보고 개념을 확실히 익혀야겠다.