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란??  (1) 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 파일이란 무엇인가?
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (658)
      • 상품 추천 (164)
      • MongoDB (4)
      • 하드웨어 (11)
      • 일기장 (4)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • 파이썬 (12)
        • Basic (41)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (50)
        • 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)
  • 인기 글

  • 태그

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

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

티스토리툴바