Unity에서 시간 활용하기 : Time

2023. 7. 14. 10:47·Unity
반응형

게임 개발 분야에서 시간은 게임 플레이 경험의 모든 측면에 영향을 미치는 기본 개념입니다. Unity의 'Time' 클래스는 시간을 제어하고 조작하기 위한 다목적 도구로 사용됩니다. 이 블로그 게시물은 Time 클래스를 이해하고 내장 메서드를 효과적으로 사용하는 방법을 안내하는 것을 목표로 합니다.

시간 클래스 이해하기

Unity의 Time 클래스는 UnityEngine 네임스페이스의 일부이며, 시간 정보를 처리하는 데 사용되는 속성과 함수를 제공합니다. 게임 시간, 실시간, 프레임 속도 데이터 등을 관리하는 방법을 제공합니다.

내장 메서드 및 속성 사용

몇 가지 필수 속성과 Unity 프로젝트에서 이를 활용하는 방법을 살펴보겠습니다.

1. Time.time

'Time.time'은 게임 시작 이후 시간을 초 단위로 반환합니다. 특정 시간이 지난 후에 발생하려는 작업에 유용합니다.

void Update()
{
    if (Time.time > 5)
    {
        Debug.Log("게임 시작 이후 다섯 초가 지났습니다.");
    }
}

2. Time.deltaTime

'Time.deltaTime'은 마지막 프레임을 완료하는 데 걸린 시간(초)입니다. 게임 오브젝트 움직임을 부드럽게 하고 프레임 속도를 독립적으로 만드는 데 사용할 수 있습니다.

public float speed = 10.0f;

void Update()
{
    transform.Translate(Vector3.forward * speed * Time.deltaTime);
}

3. Time.fixedDeltaTime

'Time.fixedDeltaTime'은 물리학 및 기타 고정 프레임 속도 업데이트(예: 'MonoBehaviour's FixedUpdate')가 수행되는 초 단위의 간격입니다. 이 값은 프레임 속도에 관계없이 일관된 물리 시뮬레이션을 보장하도록 설정할 수 있습니다.

void FixedUpdate()
{
    rigidbody.AddForce(Vector3.up * speed * Time.fixedDeltaTime);
}

4. Time.timeScale

Time.timeScale을 사용하여 게임 시간을 빠르게 또는 느리게 할 수 있습니다. 'timeScale'이 1이면 실시간, 'timeScale'이 0.5이면 절반 속도, 2이면 두 배 속도를 의미합니다. 'timeScale'을 0으로 설정하면 모든 시간 종속 작업을 중지하여 게임을 효과적으로 일시 중지합니다.

public void PauseGame()
{
    Time.timeScale = 0;
}

public void ResumeGame()
{
    Time.timeScale = 1;
}

5. Time.realtimeSinceStartup

Time.realtimeSinceStartup은 게임 시작 이후의 시간을 초 단위로 반환하는 읽기 전용 속성이지만 Time.time과 달리 Time.timeScale의 영향을 받지 않습니다. 일시 중지 중에도 계속되어야 하는 실시간 작업이나 동작에 유용합니다.

void Update()
{
    if (Time.realtimeSinceStartup > 10)
    {
        Debug.Log("게임 시작 이후 10초가 실제 시간으로 지났습니다.");
    }
}

마무리

'Time' 클래스는 개발자가 게임 내에서 시간을 제어하고 조작할 수 있도록 해주는 Unity의 필수 도구입니다. Time.time, Time.deltaTime, Time.fixedDeltaTime, Time.timeScale 및 Time.realtimeSinceStartup과 같은 속성을 효과적으로 사용하면 게임에 정교함과 유연성을 더할 수 있습니다.

저작자표시 비영리 변경금지 (새창열림)

'Unity' 카테고리의 다른 글

Unity Animator State : 애니메이션 상태 검사  (0) 2023.07.18
Unity에서 GUID란??  (2) 2023.07.15
Unity에서 GPS 구현하기  (0) 2023.07.11
Unity Package-lock.json 파일이란 무엇인가?  (0) 2023.06.30
Unity Animator의 Any State 기능이란?  (0) 2023.06.29
'Unity' 카테고리의 다른 글
  • Unity Animator State : 애니메이션 상태 검사
  • Unity에서 GUID란??
  • Unity에서 GPS 구현하기
  • Unity Package-lock.json 파일이란 무엇인가?
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (725)
      • 스마트팜 (0)
      • 상품 추천 (223)
      • MongoDB (4)
      • 하드웨어 (17)
      • 일기장 (4)
      • 파이썬 (130)
        • Basic (41)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (51)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    긴유통기한우유
    리뷰이관
    셀레니움
    스크립트 실행
    programmerlife
    파이썬
    codingcommunity
    unity
    상품 리뷰 크롤링
    devlife
    cv2
    codingtips
    스마트스토어리뷰
    appdevelopment
    Python
    스크립트 실행 순서
    라떼우유
    rtsp
    카페24리뷰
    쇼핑몰리뷰
    리뷰관리
    리스트
    믈레코비타멸균우유
    list
    programming101
    learntocode
    C#
    ipcamera
    카페24리뷰이관
    유니티
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
Unity에서 시간 활용하기 : Time
상단으로

티스토리툴바