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

+ Recent posts