게임프로그래밍/Unity
Coroutine(코루틴)
marmelo12
2021. 8. 8. 15:24
반응형
Coroutine
함수의 상태를 저장/복원 가능.
엄청 오래걸리는 작업을 잠시 멈추거나, 원하는 타이밍에 함수를 잠시 멈추고 복원하는 경우에 사용가능하다.
return값을 IEnumerator로 하는데 어떠한 타입도 return이 가능하다.
기본적인 사용법
// 인터페이스 IEnumerable을 추가.
public class TestCoroutine : MonoBehaviour, IEnumerable
{
public IEnumerator GetEnumerator()
{
yield return 1;
}
}
매우 많은곳에서 응용이 가능하지만, 게임에서 예로들어보면 스킬사용에 대해서도 코루틴을 사용할 수 있다.
스킬하나를 사용하고 대기시간이 4초. 이럴때에도 코루틴을 응용할 수 있다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TestCoroutine : MonoBehaviour
{
void Start()
{
// 밑의 코루틴을 사용하기위해 StartCoroutine을 사용
StartCoroutine("ExplodeAfterSeconds", 4.0f);
}
IEnumerator ExplodeAfterSeconds(float seconds)
{
Debug.Log("Explode Enter");
//seconds시간만큼 대기.
yield return new WaitForSeconds(seconds);
Debug.Log("Explode Execute");
}
}
이렇게 시간을 기다렸다가 사용하는데에서 코루틴을 많이 사용한다고 한다.
반응형