코루틴이란 원래 코드는 위에서부터 차례대로 실행하게 되어야 하는데 일종의 병렬처리처럼 동시에 처리 가능하도록 하는 것이다.

     

    코루틴
    public class Test : MonoBehaviour
    {
    	void Start() // 유니티에서 게임을 키면 바로 실행되는 함수
        {
        	StartCoroutine.(LoopA()); //코루틴을 하기 위해선 StartCoroutine을 이용해야 됨.
            StartCoroutine.(LoopB()); // 이렇게 하면 번갈아가면서 실행됨.
        }
    }
    
    // 코루틴을 하려면 우선 void 대신 IEnumerator를 써줘야 한다.
    IEnumerator LoopA()
    {
    	for (int i = 0; i < 100; i++)
        {
        	print(i);
            yield return new WaitForSeconds(1f); // 시간 정의하는 부분, 1f는 1초마다 실행하라는 뜻
        }
    }
    
    // 코루틴 멈추기 위해서는 코루틴을 변수로 만들어준 뒤 담아줘야 한다.
    public class Test : MonoBehaviour
    {
    	Coroutine myCoroutine; // 변수로 만들어주고
        
    	void Start() 
        {
        	myCoroutine = StartCoroutine.(LoopA()); // 담아준다.
            StartCoroutine(Stop()); // 멈추는 함수
        }
    }
    
    // 멈추는 함수
    IEnumerator Stop()
    {
    	yield return new WaitForSeconds(2f); //멈출 시간 정의
        StopCoroutine(myCoroutine); // 멈출 코루틴
    }

    이렇게 코루틴을 사용하고, 멈추는 코드를 작성할 수 있다.

     

    또 다른 방법이 있다.

    함수 대신 문자열로 넘길 수 있는데 연산도 더 복잡하고 파라미터도 하나만 넘길 수 있어서 함수형이 더 좋다.

     

     

    변수로 만들어 쓰기
    public class Test : MonoBehaviour
    {
    	// 코루틴 선언
    	private IEnumerator myCoroutine;
        
    	void Start()
        {
        	myCoroutine = LoopA(1,2,3,4,5,6); // 파라미터를 미리 넣어서 변수에 할당하고
        	StartCoroutine.(myCoroutine); // 변수만 넣어주면 여러번 사용할 때 파라미터 계속 입력 안해도 됨.
        }
    }

    파라미터가 많을 때는 이렇게 해주면 여러번 안써도 되서 편하다.

     

    모든 코루틴 멈추기

    클래스 내에서 활동 중인 코루틴을 한 번에 멈출 수 있다.

    IEnumerator Stop()
    {
    	yield return new WaitForSeconds(2f);
        StopAllCoroutines(); // 모든 코루틴 정지 함수
    }

     

    전처리

    #을 붙이면 전처리하겠다는 뜻이다.

    #region 이름
    코드
    #endregion 이름

    이런 식으로 쓰면 축약해줄 수 있다.

     

    ※ 함께 읽으면 좋은 C# 기초

     

    C# 무명 메소드, 람다식, Action, Func, 예외 처리 클릭!

    C# 인터페이스, 형식 매개 변수 T 클릭!

    C# 프로퍼티 속성, 인덱서 클릭!

    C# 클래스 상속 클릭!

    C# 구조체 델리게이트 클릭!

     

    C# 컬렉션 리스트, 큐, 스택, 해시테이블, 딕셔너리, arraylist 클릭!

    C# 배열 선언, 사용법 클릭!

    C# 조건문, 반복문 클릭!

    C# 연산자, ++ 사용법 클릭!

    C# 전역변수, 지역변수, 접근 지정자 클릭!

     

    C# 함수 정의와 호출 클릭!

    C# 기본 자료형 클릭!

    C# print, 주석, 변수 클릭!