반응형
졸업작품을 하던 도중 코루틴을 쓰게 될 일이 있어 사용할 겸 정리를 해보려고 한다.
코루틴이란?
반복적으로 코드가 실행되어야 할 때, 시간 경과에 따른 명령을 줄 때 사용한다.
Update문에서 특정 코드를 실행하게 되면 매프레임마다 실행이 되지만 코루틴을 사용하면 자신이 필요한 순간에만 반복을 할 수 있으며 해당 코드가 필요하지 않을 때엔 사용하지 않는다.
코루틴 정의
코루틴은 IEnumerator라는 반환형으로 시작되며, yield return이 함수 내에 존재해야 한다.
private IEnumerator 함수이름()
{
yield return // 조건
}
yield return의 조건은 다음과 같다.
- yield return null;
- yield return new WaitForSeconds( time ); // 매개변수로 입력한 숫자에 해당하는 초만큼 기다렸다가 실행(현실시간을 기준으로 체크)
- yield return new WaitForSecondsRealtime( time ); // 위와 동일 (유니티상에서의 시간을 기준으로 체크)
- yield break;
- yield return new WaitForFixedUpdate 등
코루틴 호출
StartCoroutine("CoroutineName");
StartCoroutine(CoroutineName());
*같은 코드입니다
코루틴 종료
StopCoroutine("CoroutineName");
StopCoroutine(CoroutineName());
코루틴 예제
private void Start()
{
StartCoroutine("CoroutineName");
}
private IEnumerator CoroutineName()
{
yield return new WaitForSeconds(1f);
Debug.Log("1초");
}
실행 후 1초 뒤에 콘솔에 1초가 찍힌다.
반응형
'Unity, C#' 카테고리의 다른 글
[Unity C#] Overlap (0) | 2023.04.20 |
---|---|
[Unity C#] OnTrigger와 OnCollision의 차이 (0) | 2023.02.18 |
[Unity C#] Addressables Asset System (어드레서블 에셋 시스템) (0) | 2022.11.29 |
[C#] 암호화, 복호화 (0) | 2022.11.07 |
[Unity C#] 변수와 자료형, 대입 연산자, 조건문, 반복문 (0) | 2022.10.11 |