bdfgdfg

Coroutine(코루틴) 본문

게임프로그래밍/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");
    }

}

이렇게 시간을 기다렸다가 사용하는데에서 코루틴을 많이 사용한다고 한다.

 

반응형

'게임프로그래밍 > Unity' 카테고리의 다른 글

데이터 관리(Json)  (0) 2021.08.08
Animation State패턴  (0) 2021.08.06
투영  (0) 2021.08.05
Raycasting / LayerMask  (0) 2021.08.05
Input Manager / Resource Manager  (0) 2021.08.05
Comments