Unity C# > UnityEngine : Time

Date:     Updated:

카테고리:

태그:

공부하면서 알게된 것만 정리합니다.😀

👩‍🦰 Time

시간과 관련된 함수나 변수의 집합

🚀 변수/프로퍼티

✈ deltaTime

  • 현재 프레임에서 다음 프레임까지의 시간 간격. 프레임간의 시간 간격이다.
  • 우리집 컴퓨터가 60프레임이면 대략 1/60인 셈.
  • update같이 매 프레임마다 실행되는 함수 안에서 시간 간격을 고려하여 Time.deltaTime을 곱해주면 보정할 수 있다.
    • 1초에 3m 가게 움직이고 싶은데 1초에 60번 깜빡이는 60프레임 컴퓨터라면 update함수 내에서 3m * Time.deltaTime 해주면 된다.
    • 매 프레임마다 3m * Time.deltaTime씩 움직여 최종적으로 1초에 3m 움직이게 되는


✈ 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.deltaTimeFixedUpdate() 함수 안에서 쓰이면 알아서 Time.fixedDeltaTime 으로 리턴하기 때문이다.
      • Time.deltaTime은 알아서 Update() 함수에서는 프레임간의 사잇 시간으로서 동작하고 FixedUpdate() 함수 안에서 쓰이면 알아서 고정된 프레임인 Time.fixedDeltaTime (0.02초) 으로 쓰인다.


🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우 
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄

맨 위로 이동하기

UnityDocs 카테고리 내 다른 글 보러가기

댓글 남기기