본문 바로가기

Unity3D/C#

Time.deltaTime을 이용한 타이머 (Timer) 스크립트

반응형

Time.deltTime Timer

 

 

시간이 지난 후에 어떤 이벤트를 실행하려고 할 때 타이머 기능이 필요합니다. 타이머 기능을 구현하는 방법은 다양하게 있지만 이번에는 가장 기본적인 방법으로, 적은 시간을 시간 변수에 빼서 변수가 0초가 됐을 때, 함수가 동작하는 방법을 소개하려고 합니다. 이 방법을 쓰기 위해 Time.deltaTime를 변수에 빼야 합니다. Time.deltaTime은 1초를 현재의 프레임으로 나눈 값으로, 프레임이 느려지거나 빨라질 때마다 조금씩 값이 변합니다. 예를 들어 프레임이 30fs라고 하면 약 1/30 정도의 값이 출력됩니다. 프레임 속도에 따라 값이 변하기 때문에 단순하게 0.02f를 빼는 것에 비해 더 타이머에 사용하기 적합합니다.

 

 

C# (UNITY 3D)

 

 

 

타이머 예시

 

 

 


    public UnityEngine.UI.Text text_Timer;
    private float time_current;
    private float time_Max = 5f;
    private bool isEnded;

    private void Start()
    {
        Reset_Timer();
    }
    void Update()
    {
        if (isEnded)
            return;

        Check_Timer();
    }

    //CodeFinder
    //From https://codefinder.janndk.com/
    private void Check_Timer()
    {

        if (0 < time_current)
        {
            time_current -= Time.deltaTime;
            text_Timer.text = $"{time_current:N1}";
            Debug.Log(time_current);
        }
        else if (!isEnded)
        {
            End_Timer();
        }

        
    }

    private void End_Timer()
    {
        Debug.Log("End");
        time_current = 0;
        text_Timer.text = $"{time_current:N1}";
        isEnded = true;
    }


    private void Reset_Timer()
    {
        time_current = time_Max;
        text_Timer.text = $"{time_current:N1}";
        isEnded = false;
        Debug.Log("Start");
    }
    

 

변수(variable)

text_Timer : 남은 시간을 보여줌

time_current : 타이머 현재 시간

time_Max : 타이머 시작 시간

isEnded : 타이머 종료 확인

 

함수(function)

Check_Timer : 타이머 시간 검사 (반복문)

End_Timer : 타이머 종료 시 실행

Reset_Timer : 리셋

 

 

 

UnityTimer / Time.deltaTime / 시간측정 / Unity C# / Frame / 타이머만들기 / 유니티시계 / Simple Stopwatch / Simple Countdown / 카운터 / 스톱워치 / 제한시간 / 딜레이 / Update / Reset / Check / Finish / Full Script

 

 

 

반응형