재미있는 실감미디어

꿈꾸는대로 만들어집니다.

유니티기초[유니티 기초] 26_C# 스크립트 - Time.deltaTime_시간 및 프레임 속도 관리

김혜영
2020-04-17
조회수 1192

유튜브 26 - https://youtu.be/kS3y4adpCT4


안녕한세요~ 드디오 26강 4분의 1이 넘었습니다. 오늘은 유니티에서 아주 중요한 시간 및 프레임 속도 관리에 요긴하게 쓰이는 Time.deltaTime을 배워보도록 합니다. 저는 처음에 이 부분이 약간 잘 이해가 안되었습니다. 책을 보아도 뭔가.. 애매했는데요. 가만히 생각해보니 잘 이해가 되더군요. 이제부터 제가 이해한 방식으로 풀어가볼까 합니다. 


먼저 유니티의 매뉴얼을 한번 살펴봅니다. 좋은 참고 교재입니다.

https://docs.unity3d.com/kr/current/Manual/TimeFrameManagement.html


좀 더 자세히 보실 수 있습니다. 번역기를 돌려보니 Time.deltaTime이란 “마지막 프레임 이후의 완료 시간”이라고 합니다. 

https://docs.unity3d.com/kr/current/ScriptReference/Time-deltaTime.html


저는 처음에는 잘 이해되지 않았는데, 구글링을 해보며 이와 같은 그림을 그려보니 이해가 되더군요. deltaTime은 마지막 프레임 이후의 완료 시간(초)으로 float 타입입니다. 연산 등의 이유로 일정하지 않는데요. 이것은 유니티에서 Stats를 보면 알 수 있습니다.


실제로 아웃풋을 해보면 즉, Time.deltaTime을 출력해보면 값이 다릅니다. 즉, 마지막 프레임 이후의 완료 시간 (초)이 제각각 다릅니다. 


이제 다음의 코드를 통하여 Time.deltaTime의 의미를 확인합니다. 각 프레임 간격의 Time.deltaTime이 다르겠지만 어찌되었든 0초에서 1초까지 오는동안의 프레임 Time.deltaTime을 모두 더하면 1초가 될 것입니다. 우리는 이 부분을 이해하면 됩니다. 찬찬히 그림을 보시면서 이해해 보도록 합니다. 그리고 출력값을 살펴보면 이해가 잘 될 것입니다. 출력값이 계속 증가하는 것을 볼 수 있습니다. 점점 시간이 증가하는 개념입니다. 그림을 이해해보고, 유니티에서 Time.deltaTime의 출력값을 이해하면 됩니다. (유튜브를 참고하세요^^) 즉, 시간의 흐름을 볼 수 있습니다.


만약… int로 정수형으로 변환하여 본다면 어떨까요? 바로 이렇게 흐르는 시간을 정수형태로 확인할 수 있습니다. 이러한 방법으로 게임상에서 시간, 타이머를 구현할 수 있습니다. 와우^^


조금 어렵지 않았나요? 전 사실… 좀 어려웠습니다. 이해하고 나니 쉽더군요. 하지만 처음에는 생소하다 보니 잘 이해가 되지 않더라구요.. FPS가 다르다는 것을 안 뒤에야 이해가 확실하게 되더군요… Time.deltaTime까지 했으니 우리는 게임의 타이머도 구현할 수 있습니다. 그러나 더 중요한 것이 있습니다. 바로 초당 움직이는 캐릭터의 속도인데요. 다음시간에 캐릭터의 속도에 Time.deltaTime을 적용해야 하는 이유와 방법을 살펴보도록 하겠습니다. 그럼.. 오늘도 수고하셨습니다. ^^ 안녕~~~

1 0

매일 한알의 마늘처럼 하나의 미션 수행!

동굴뛰쳐나가지 않고 매일 하나의 마늘을 먹기!!!

게임이나 VR, AR 에 유니티가 언리얼과 같이 많이 사용된다고 듣긴 했지만 나와는 관계없는 프로그램 같았습니다. 그러다가 우연한 계기로 게임 디자인을 하면서 유니티에 관심이 생겼습니다. 


자바스크립트가 유니티와 연동된다고 하니, 유니티가 매력있게 다가왔습니다. 유니티까지 활용한다면 작업 영역의 확장 뿐만 아니라 재미있는 콘텐츠를 제작할수 있겠다는 가능성이 보였습니다.


내가 기획하고, 디자인하고, 개발까지 하여 하나의 게임 앱을 만들수가 있다니! 얼마나 달콤한 유혹인지 모릅니다. 물론 수 많은 산을 넘고 에러를 넘고, 오류를 넘어야 하는 것은 각오를 해야 합니다. 그럼에도 불구하고 무척 매력적 입니다. 인고의 시간을 지나면 나는 상상력을 구현할수 있는 하나의 툴을, 도구를 장착할수 있는 것입니다. 아!이!언!맨! 처럼 말이지요!!!


카카오프로젝트 100은 게으른 저를 동기부여해 줍니다. 당장 통장에 계좌가 찍히는 일은 열심히 하게 되지만, 새로운것을 공부할 때는 의지가 참 약해지고 용두사미가 됩니다. 그런 의미에서 카카오프로젝트 100은 100일동안 의지를 불태울수 있는 작은 동기가 됩니다. 카카오프로젝트 시즌1에서는 자바스크립트 기초를 정리했습니다. 

시즌 2에서는 새로운 공부를 도전합니다. 바로 유!니!티!


여러분 생각은 어떤가요?

top