본문 바로가기
유니티

프레임을 건너뛴다라는게 무슨말일까?

by 유니티세상 2026. 3. 13.
반응형

비동기 내용을 찾다보면 프레임을 건너뛴다라는 말이 많이 나온다 그게 무슨말일까?

Unity는 프레임 단위로 게임을 실행한다.

Frame 1
├ Input 처리
├ Update 실행
├ Physics
├ Rendering
└ 화면 출력

Frame 2
├ Input 처리
├ Update 실행
├ Physics
├ Rendering
└ 화면 출력

이 과정이 게임 루프(Game Loop) 로 계속 반복된다.

게임은 보통 1초에 30 ~ 120번 정도 이 루프를 반복한다.

 

예를 들어 60fps라면

1초 = 60 프레임

따라서 한 프레임의 시간은

약 0.016초

이다.


코루틴과 async에서 프레임 대기

코루틴의

yield return null;

비동기의

await Awaitable.NextFrameAsync();

의 의미는

지금 실행을 멈추고
다음 프레임에서 이어서 실행한다

이다.


왜 프레임을 기다려야 하는가

예를 들어 카메라 FOV를 줄일 때 부드러운 애니메이션을 만들려면

Frame1 → 60
Frame2 → 58
Frame3 → 56
Frame4 → 54
...
Frame60 → 30

처럼 프레임마다 조금씩 값이 변경되어야 한다.


만약 프레임을 기다리지 않는다면?

프레임 대기 없이 while 루프를 돌리면

한 프레임 안에서
while 루프가 수천 번 실행된다.

그래서 실제 시간은 지나지 않았는데

60 → 30

즉시 계산되어 버린다.

 

결과적으로

부드러운 애니메이션이 만들어지지 않는다.

Update와 while의 차이

Update
→ Unity가 프레임마다 한 번씩 호출
→ 자연스럽게 프레임 기반 실행
while
→ 한 프레임 안에서 계속 실행
→ 프레임을 기다리지 않음

그래서

Update / Coroutine / async
→ 프레임 기반 로직

while
→ CPU 루프

가 된다.

반응형

'유니티' 카테고리의 다른 글

Unity Linux Server 빌드란  (0) 2026.03.17
[Unity Linux Server] GLIBC란?  (0) 2026.03.17
CancellationTokenSource test code  (0) 2026.03.13
Addressables 세팅 방법 및 샘플 코드  (0) 2026.03.12
Unity Garbage Collection  (0) 2026.03.11