Coroutine은 유니티에서 특정 함수가 반복될 때 사용할 수 있다.
반복을 위해서 Update를 사용하면 되지만, 만약 반복문을 10만번 실행 시키려고 하는데, 매 프레임당 만번밖에 실행을 하지 못한다면 그 반복문은 만번만 실행되고, 다시 처음부터 실행될 것이다.
물론 다른 방법도 존재한다. 전역변수를 사용하여 계속 이어서 할 수 있다.
그러나 이 방법 말고, 함수 내에서 이어서 할 수 있게 하는 것이 Coroutine이다.
먼저, Coroutine을 사용하는 함수를 만들 때는, IEnumerator 반환형으로 함수를 선언해야 한다.
또한 return을 통해 반환하는 일반 함수와는 달리 yield return을 사용한다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CoroutineEx : MonoBehaviour
{
private void Start()
{
StartCoroutine(TestFunc());
// 반대로 StopCoroutine 함수를 사용하면 정지할 수 있다.
}
private void Update()
{
}
IEnumerator TestFunc()
{
yield return null;
// 다음 프레임에 실행 됨.
yield return new WaitForSeconds(float sec);
// sec에 들어간 초를 유니티 시간을 기반으로 기다리고 실행됨.
yield return new WaitForSecondsRealtime(flaot sec);
// sec에 들어간 초를 실제 시간을 기반으로 기다리고 실행됨.
yield break;
// 함수 종료
}
}
'UNITY' 카테고리의 다른 글
UNITY - DataManager (0) | 2024.01.23 |
---|---|
UNITY - Object Pooling (1) | 2024.01.23 |
UNITY - SoundManager (0) | 2024.01.22 |
UNITY - UI 자동화 - 게임 UI 구현 (0) | 2024.01.22 |
UNITY - Scene (1) | 2024.01.12 |