코루틴이란??
유니티에서는 코루틴(Coroutine) 기능을 제공하여 비동기 처리를 쉽게 할 수 있습니다. 코루틴은 메서드를 실행하다가 중간에 일시 정지하고, 다른 코드를 실행한 뒤에 다시 돌아와서 중단된 부분부터 실행을 이어서 진행하는 기능입니다.
코루틴 사용방법
코루틴을 사용하려면, 해당 메서드를 IEnumerator 형식으로 선언하고 yield return 문을 사용하여 일시 정지하는 지점을 지정해주어야 합니다. 예를 들어, WaitForSeconds() 함수는 일정 시간 동안 대기하는 코루틴을 만들 때 사용됩니다.
using UnityEngine;
using System.Collections;
public class CoroutineExample : MonoBehaviour
{
void Start()
{
StartCoroutine(WaitAndPrint(2.0f));
}
IEnumerator WaitAndPrint(float waitTime)
{
yield return new WaitForSeconds(waitTime);
Debug.Log("WaitAndPrint " + Time.time);
}
}
지연시간의 종류
yield return null
이 명령문은 한 프레임 동안 코루틴을 일시 중지하여 다음 프레임에서 코루틴을 다시 시작하기 전에 다른 코드를 실행할 수 있도록 합니다.
yield return new WaitForSeconds(float time)
지정된 시간(초) 동안 코루틴을 일시 중지합니다. 예를 들어 yield return new WaitForSeconds(2)는 코루틴을 2초 동안 일시 중지합니다.
yield return new WaitForFixedUpdate()
이 명령문은 다음 고정 업데이트까지 코루틴을 일시 중지합니다. 이 업데이트는 물리 계산의 일관성을 보장하는 각 프레임 동안의 특정 시간입니다.
yield return new WaitUntil(Func<bool> predicate)
지정된 조건이 충족될 때까지 코루틴을 일시 중지합니다. 조건은 true 또는 false를 반환하는 부울 함수로 정의됩니다.
yield return new WaitWhile(Func<bool> predicate)
지정된 조건이 참인 동안 코루틴을 일시 중지합니다. 조건은 true 또는 false를 반환하는 부울 함수로 정의됩니다.
yield return StartCoroutine(IEnumerator coroutine)
이 명령문은 다른 코루틴을 시작하고 현재 코루틴을 계속하기 전에 완료될 때까지 기다립니다.
'Unity' 카테고리의 다른 글
Unity에서 게임 오브젝트 위치 이동 시키기 (0) | 2023.03.18 |
---|---|
연산자란? 연산자 종류 - 단항 연산자, 이항 연산자, 삼항 연산자 (0) | 2023.03.16 |
Unity 스크립트 실행 순서 설정 (0) | 2023.03.09 |
Unity 이벤트 함수 (0) | 2023.03.08 |
Unity 스크립트 작성 시 유용한 애트리뷰트 (0) | 2023.03.02 |