안녕하세요?


지난 시간에 제가 120프레임으로 맞추어 놓아서 어떻게 문제를 훗날에 일으키지 않을까 하는 걱정이 들었는데, 그래서 이번 시간에는 어느정도 조사를 하고 나서, 어떻게 하면 FPS(Frame Per Second)라고 해서 초당 프레임 수를 표시할 수 있는지에 대해서 한번 다루어 보고자 합니다.



우선 유니티5의 스크립트 매뉴얼에 있는 내용인데, 여기서는 frame rate라고 해서 FPS에 직결이 되는 값과는 독립적인 값이라고 분명이 언급을 하고 있습니다.



그래서 한번 얼마나 FPS가 게임상에서 나올 수 있는지를 알아보기 위해서, 우선 위 스크린샷처럼 FPSDisplay.cs라는 스크립트가 있습니다.



그리고 나서 GUI.Label이라는 명령어로 따로 Label을 위한 박스를 만들지 않고도 텍스트를 출력할 수 있다는 것을 알 게 되었습니다. 그래서 이 명령어도 이해를 하기는 하였고....



유니티5의 계층뷰에서 위 스크린샷처럼 FPS를 표시하기 위한 게임 오브젝트를 만듧니다.




그리고 일단은 유니티 씬뷰에서 위 스크린샷처럼 위치도 지정을 해 주도록 합니다.



그리고 Scripts폴더에서 위 스크린샷처럼 FPSDisplay.cs 라는 스크립트를 생성하도록 하고



위 스크린샷처럼 일련의 코드를 웹사이트에서 그대로 가져와서 붙여넣기 하도록 해 봅니다.



그리고 FPS_Display라는 게임 오브젝트에 FPSDisplay.cs를 컴포넌트로서 지정해 주도록 합니다.




일단 FPS가 나오기는 하는데, 너무 글씨가 작아서 읽을 수 없다는 단점이 있습니다. 그래서 무언가의 조치가 필요합니다.



위 스크린샷처럼 style.fontSize라는 항목에서 숫자를 4배 키워 주도록 합니다.



이제 제대로 읽을 수 있는 FPS가 나오는 것을 볼 수 있는데, 우선 거의 60FPS 정도는 나오는 것을 알 수 있었습니다.



그래서 이걸 낮출 수 있지 않을까 해서 CameraFollow.cs 스크립트를 찾아가 보도록 했습니다.




위 스크린샷처럼 Application.targetFrameRate라는 항목의 값을 원래는 60으로 되어 있는데, 이를 30으로 내려 보도록 했습니다. 



그래도 여전히 FPS는 체감하는 감소는 일어나지 않았고, 실제로 표시되는 값도 그다지 변화가 없다는 것을 알 수 있었습니다.



이제 FPS_Display라는 게임 오브젝트를 비활성화 시키도록 합니다.



당분간 프레임 레이트라고 해서 게임의 부드럽기나 속도를 제어하는 데 필요한 이 값을 한동안은 보지 않도록 합니다. 하지만, 나중에라도 필요하다면 이 게임오브젝트를 다시 활성화 시키기만 하면 언제든지 쉽게 FPS값을 확인할 수는 있는데, 나중에라도 게임이 완성에 가까워지면, 언제든지 확인을 해 보아야겠다는 생각이 듭니다.

+ Recent posts