결과 화면
Time.time
스크립트가 실행된 이후 경과한 시간을 초 단위로 나타냅니다.
(경과한 시간을 int형으로 Text 컴포넌트를 이용하여 출력) Time.time을 먼저 startTime에 치환하고 (실행 시간에 따른 격차 제거를 위하여)
1 2 3 4 5 6 7 8 9 10 11 | public Text timeTimer; private float startTime; void Start() { startTime = Time.time; } void Update() { float t = Time.time - startTime; timeTimer.text = ((int)t).ToString(); } |
StartCoroutine (functionName)
코루틴은 주로 한 개의 동작을 여러 프레임으로 표현할 때 사용되는 함수입니다.
코루틴 함수 안에는 yiled 문을 활용하여 코루틴을 정지시키거나, 지정된 초만큼 프레임을 지연시키는 방법이 가능합니다.
yield return new WaitForSeconds를 사용하여 1초 만큼의 프레임을 지연시키면서 while 문을 수행하여 표현한 타이머입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public Text coroutineTimer; private int coroutineNumber; void Start() { coroutineNumber = 0; StartCoroutine("CoroutineTimer"); } IEnumerator CoroutineTimer() { while (coroutineNumber < 99 ) { yield return new WaitForSeconds(1f); coroutineNumber++; coroutineTimer.text = coroutineNumber.ToString(); } } |
InvokeRepeating (functionName, time, repeatRate)
매초 반복적인 기능을 수행하는 InvokeRepeating을 활용하며 만든 타이머 예제입니다.
Invoke 함수는 입력된 시간 후에 함수를 호출하며 repeatRate에 지정된 시간이 지날 때마다 반복 호출됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 | public Text invokeTimer; private int invokeNumber; void Start() { invokeNumber = 0; InvokeRepeating("InvokeTimer", 1f, 1f); } void InvokeTimer() { invokeNumber++; inbokeTimer.text = invokeNumber.ToString(); } |
댓글
댓글 쓰기