Unity C# > UnityEngine : Time
카테고리: UnityDocs
태그: Unity Game Engine
공부하면서 알게된 것만 정리합니다.😀
👩🦰 Time
시간과 관련된 함수나 변수의 집합
🚀 변수/프로퍼티
✈ deltaTime
- 현재 프레임에서 다음 프레임까지의 시간 간격. 프레임간의 시간 간격이다.
- 우리집 컴퓨터가 60프레임이면 대략
1/60
인 셈. - update같이 매 프레임마다 실행되는 함수 안에서 시간 간격을 고려하여
Time.deltaTime
을 곱해주면 보정할 수 있다.- 1초에 3m 가게 움직이고 싶은데 1초에 60번 깜빡이는 60프레임 컴퓨터라면 update함수 내에서
3m * Time.deltaTime
해주면 된다. - 매 프레임마다
3m * Time.deltaTime
씩 움직여 최종적으로 1초에 3m 움직이게 되는
- 1초에 3m 가게 움직이고 싶은데 1초에 60번 깜빡이는 60프레임 컴퓨터라면 update함수 내에서
✈ time
- 게임 시작 후 (Start 함수 실행 후) 현재까지의 경과 시간(float 초 단위)
✈ timeScale
Time.timeScale
을 통해 시간이 흘러가는 속도를 변경한다면Time.fixedDeltaTime
도 그에 맞게 변경해줄 것을 권장한다.Time.fixedDeltaTime = 0.02f * Time.timeScale
Time.timeScale
이 2.0f이면 디폴트에 비해 두배로 시간이 빨리 흘러간다는 의미고 0.0f면 시간이 아예 흐르지 않고 정지 상태라는 것을 의미한다.- 🌼
Time.timeScale = 0f
👉 0 배속. 즉 시간을 멈춘다.Time.deltaTime
이 0 이 된다.Time.deltaTime
,Time.TimeScale
에 의존하는 모든 것들이 멈추게 된다.- 코루틴 함수(WaitForSeconds) 멈춘다. 반면 WaitForSeondsRealTIme은 멈추지 않는다.
- Update 함수는 멈추지 않는다. 반면 FixedUpdate 함수는 멈춘다.
✈ fixedDeltaTime
- FixedUpdate() 함수가 실행되는 그 사이의 시간. 다음 FixedUpdate() 함수가 실행되기까지의 시간.
- FixedUpdate() 함수는 디폴트로 1/50초인 0.02초를 주기로 실행되기 때문에 디폴트론
Time.fixedDeltaTime
값은0.02
이다. - FixedUpdate() 함수 안에서 사용할 때 Time.fixedDeltaTime가 아닌 그냥 Time.deltaTime 를 사용할 것을 권장한다.
- 자동으로
Time.deltaTime
이 FixedUpdate() 함수 안에서 쓰이면 알아서Time.fixedDeltaTime
으로 리턴하기 때문이다.Time.deltaTime
은 알아서 Update() 함수에서는 프레임간의 사잇 시간으로서 동작하고 FixedUpdate() 함수 안에서 쓰이면 알아서 고정된 프레임인Time.fixedDeltaTime
(0.02초) 으로 쓰인다.
- 자동으로
🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄
댓글 남기기