WaitForSeconds vs WaitForSecondsRealtime
Unity 코루틴 ( Coroutine ) 에서 시간을 잠시 멈추는 기능을 다룰 때 자주 등장하는 클래스이다.
이름은 비슷하지만 시간을 어떻게 계산하느냐의 차이가 있다.
| 구분 | 설명 | 영향을 받는 요소 |
| WaitForSeconds | Time.timeScale ( 시간 배율 ) 의 영향을 받는 대기한다 | Time.timeScale |
| WaitForSecondsRealtime | 실제 시간 ( Real - time ) 을 기준으로 대기한다 | X |
1. WaitForSeconds
- 게임의 시간 배율 ( Time.timeScale ) 에 영향을 받는다
- 예시 : Time.timeScale = 0.5f → 게임 속도가 절반 → 1초 대기는 실제 2초 걸린다
- 예시 : Time.timeScale = 0 → 일시정지 상태 → 대기 시간이 멈춘다
IEnumerator Example()
{
Debug.Log("시작");
yield return new WaitForSeconds(2f); // timeScale 영향을 받음
Debug.Log("2초 후 실행됨 (timeScale 고려)");
}
2. WaitForSecondsRealtime
- 현실 시간 ( 진짜 초 단위 ) 대기
- Time.timeScale 값이 어떻든 관계없이 항상 지정한 초만큼 기다린다
- 일시정지 중에도 시간은 흘러간다
IEnumerator ExampleRealtime()
{
Debug.Log("시작");
yield return new WaitForSecondsRealtime(2f); // real time 기준
Debug.Log("정확히 2초 후 실행됨 (timeScale 무시)");
}
정리
| 항목 | WaitForSeconds | WaitForSecondsRealtime |
| 시간 기준 | 게임 시간 ( Time.time ) | 실제 시간 ( Time.realtimeSinceStartup ) |
| timeScale 영향 | 받는다 | 받지 않는다 |
| 일시정지 중 동작 | 멈춘다 | 계속 흐른다 |
| 주 사용처 | 일반적인 게임 진행 중 대기 | 일시정지 메뉴 , 로딩 화면 , UI 타이머 등 |
| 코루틴 복귀 시점 | 게임 시간이 흘러야 가능하다 | 실제 시간이 지나면 복귀한다 |
'🧊Unity Basic > 코루틴&이벤트' 카테고리의 다른 글
| 유니티 액션 ( Unity Action ) (0) | 2025.10.20 |
|---|---|
| 유니티 이벤트 ( Unity Event ) (0) | 2025.10.20 |
| Coroutine 핵심 키워드 (0) | 2025.10.18 |
| IEnumerable vs IEnumerator (0) | 2025.10.18 |
| 코루틴 ( Coroutine ) (0) | 2025.10.18 |