Unity Learn/주니어 프로그래머

4단원 - 게임 플레이 메카닉 : 코루틴

coding-potato 2024. 11. 22. 20:31

코루틴

 IEnumerator 타입을 반환하는 함수. 그 안에서 yield 구문을 사용하여 함수의 실행을 일시적으로 중단할 수 있음.

 

코루틴은 한 번에 끝내는 것이 아니라, yield return 문을 만나면 잠시 멈추고,

주어진 조건이 만족되면 다시 실행을 이어   갑니다.

 

사용 예시

설명

  1. IEnumerator Start(): 이 함수는 IEnumerator를 반환하는 코루틴 함수입니다. Start()가 호출되면 코루틴이 시작됩니다.
  2. yield return new WaitForSeconds(3): 이 코드는 3초 동안 대기하도록 합니다. 이때, yield 키워드로 함수의 실행을 잠시 멈추고, 시간이 지난 후 다시 실행을 이어갑니다.
  3. StartCoroutine(): Unity에서 코루틴을 실행하려면 StartCoroutine() 메서드를 호출해야 합니다. Start()는 Unity에서 자동으로 호출되는 특별한 함수이지만, 실제로 코루틴을 시작하려면 StartCoroutine()을 사용합니다.

정리

  • 코루틴은 **IEnumerator**를 반환하는 함수로, 일시 정지재개가 가능한 함수입니다.
  • 주로 시간 지연, 반복적인 작업, 애니메이션 효과 등을 비동기적으로 처리하는 데 사용됩니다.
  • **yield return**을 사용하여 특정 조건을 기다리거나, 결과를 반환하고 실행을 잠시 멈출 수 있습니다.

 

StartCoroutine() 함수

코루틴을 시작하는 데 사용되는 함수

 

StartCoroutine 함수를 사용하면 Update 메서드 외부에서도 코루틴을 시작할 수 있습니다. 코루틴은 StartCoroutine을 호출하는 시점에서 시작되며, Update 외에도 다른 메서드나 이벤트에서 호출할 수 있습니다.

 

StartCoroutine의 특징

  1. 어디서든 호출 가능: StartCoroutine은 게임 오브젝트가 활성화되어 있으면 어떤 메서드에서든 코루틴을 시작할 수 있습니다.
  2. 다양한 이벤트에서 호출 가능: 예를 들어, 충돌, 버튼 클릭, 특정 조건 등이 발생했을 때 코루틴을 시작할 수 있습니다.
  3. 비동기 처리: 코루틴은 **yield return**을 사용하여 일시 정지할 수 있으며, 다른 코드가 실행되는 동안 대기나 반복 작업을 처리할 수 있습니다.

정리

**StartCoroutine**을 사용하면 **Update**뿐만 아니라 다른 메서드에서 코루틴을 시작할 수 있습니다. 코루틴은 게임 오브젝트가 활성화된 상태에서 비동기적 작업을 처리하는 데 유용하며, 다양한 이벤트나 조건에 따라 실행할 수 있습니다.