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.timeScaleTime.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초) 으로 쓰인다.
- 자동으로
🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄
댓글 남기기