본문 바로가기
알아두면 좋은것들

02.27 (TIL)

by 오랑이귀엽다 2024. 2. 27.

유니티로 타이머 구현 알고리즘

 

유니티에서 타이머를 구현하는 가장 일반적인 방법은 Update() 메서드를 사용하여 시간을 추적하는 것입니다. 아래는 간단한 카운트다운 타이머 구현 방법입니다:

  1. 변수 선언: 타이머의 남은 시간을 저장할 변수를 선언합니다.
  2. Update 메서드 사용: 매 프레임마다 Update() 메서드 내에서 Time.deltaTime을 사용하여 타이머 변수에서 시간을 감소시킵니다.
  3. 타이머 검사: 타이머가 0 이하로 내려갔는지 검사하고, 0 이하로 내려간 경우 타이머가 완료되었음을 알립니다(예: UI 업데이트, 특정 이벤트 트리거 등).
  4. 간단 구현
더보기

using UnityEngine;

public class TimerExample : MonoBehaviour
{
    public float timerDuration = 10.0f; // 타이머 지속 시간 설정
    private float timer; // 타이머의 현재 값

    void Start()
    {
        timer = timerDuration; // 타이머 초기화
    }

    void Update()
    {
        if (timer > 0)
        {
            timer -= Time.deltaTime; // 타이머 감소
            Debug.Log("Timer: " + timer); // 현재 타이머 값 로그 출력
        }
        else
        {
            Debug.Log("Timer Completed!"); // 타이머 완료 메시지
            // 타이머 완료 시 실행할 로직
        }
    }
}

Time.deltaTime이란?

 

Time.deltaTime은 마지막 프레임이 완료되는 데 걸린 시간(초 단위)입니다. 즉, 이전 프레임과 현재 프레임 사이의 시간 간격입니다.

 

  1.  프레임 속도 독립적인 로직 실행: 다양한 하드웨어에서 게임의 프레임 속도가 달라질 수 있습니다. Time.deltaTime을 사용하면, 실행되는 로직이 프레임 속도에 영향을 받지 않고 일관된 속도로 작동하게 할 수 있습니다. 예를 들어, 오브젝트를 이동시킬 때 Time.deltaTime을 곱하여 프레임 속도와 상관없이 일정한 속도로 이동하게 할 수 있습니다.
  2. 부드러운 애니메이션과 이동: Time.deltaTime을 사용하여 시간에 따라 값을 조정함으로써, 애니메이션이나 오브젝트의 이동이 더 부드럽게 보일 수 있습니다.
  3. 간단 구현 
더보기

float speed = 5.0f; // 오브젝트 이동 속도
void Update()
{
    float move = speed * Time.deltaTime; // 이동할 거리 계산
    transform.Translate(move, 0, 0); // 오브젝트를 수평으로 이동
}

 

'알아두면 좋은것들' 카테고리의 다른 글

02.29 (TIL)  (0) 2024.03.05
02.28 (TIL)  (2) 2024.02.28
02.26 (TIL)  (0) 2024.02.26
02.23 (TIL)  (0) 2024.02.23
02.19 (TIL)  (0) 2024.02.19