[Unity] 프레임과 실행 시점

2024. 9. 1. 19:44Unity

저번 글의 Start()와 Update() 메서드와 관련된 내용을 추가적으로 공부해 봤습니다 각설하고 바로 본 내용으로 들어가 자면, 게임 화면은 영화나 애니메이션과 마찬가지로 그림 한 컷을 플립북 방식(한 손으로 책을 잡고, 다른 한 손의 엄지 손가락을 사용해 책장을 빠르게 넘겨 읽는 방식) 으로 표시한다 하네요

 

이 그림 한 컷을 프레임이라고 하며, 1초에 표시되는 매수는 FPS(Frame Per Second / 초당 프레임) 단위로 센다 하네요

대개 영화는 1초에 24프레임(24FPS), 게임은 1초에 60프레임(60FPS 근데 보통은 144프레임으로 하지 않나 십네욥;;) 속도로 그림을 전환해 애니메이션을 보여 준다고 하네요

 

단 1초동안 60프레임으로 설정해도 사용자가 입력한 표시 내용이 바뀌거나 시스템 부하 등이 달라지면 프레임 간 시간이 1/60초보다 빠르거나 느릴 수 있다고 하네요 실제로 앞의 프레임부터 몇 초 지났는지는 Time.deltaTime 구조로 알 수 있다로 한네요

 

프레임과 Time.deltaTime이 무엇인지 간단히 보자면

제가 직접 만든 프레임과 Time.deltaTime을 보여주는 사진입니다!

PPT로 만들어서 많이 어설프네욥 ㅋㅋㅋㅋㅋ 나중에는 더 퀄 좋게 만들어 보겠습니다

 

위 사진에서 Start와 Update에 말풍선이 붙어 있는 것을 주목해 보라 하네요. 스크립트를 실행시키면 Start 메서드는 한 번만 실행되지만 Update메서드는 프레임마다 반복해서 실행된다 하네요. 원이 위로 올라가는 애니메이션을 만들 때 처음에는 Start메서드로 캐릭터를 표시하고, 그다음에는 Update 메서드로 프레임마다 캐릭터를 조금씩 위쪽으로 옮기는 처리를 할 수 있다는 예시를 들었네요

 

void Start() {
 *원을 표시하는처리
}

void Update() {
 *현재 캐릭터를 조금씩 오른쪽으로 옮기는 처리
}

또한 Update()매서드는 캐릭터 표시뿐만 아니라 충돌 판정이나 키 조작 등의 처리를 프레임마다해야 한다고 하네요

 

스크립트의 큰 흐름을 정리하면 위 사진과 같다고 하네요!

 

확실히 Unity공부를 하면 할수록 구현을 할려면 원리를 확실하게 알아야 한다는 것을 느끼네요

이번 글은 여기셔 마칩니다!

'Unity' 카테고리의 다른 글

[Unity] Hello, World  (0) 2024.09.08
[Unity] 스크립트  (0) 2024.09.01
[Unity] 프로파일러  (0) 2024.08.31
[Unity] 씬 저장하기  (0) 2024.08.31
[Unity] 정육면체 추가하기  (0) 2024.08.31