유니티 코루틴(Coroutine)

리턴형으로 IEnumerater를 사용한다
yield return을 사용해서 IEnumerater함수에서 빠져나올 수 있다.
또한 WaitForseconds함수를 사용하여 매개값으로 주어진 시간이 지난 후에 다시 복귀하게 할 수 있다.

public class CRTest : MonoBehaviour
{
    private void Start()
    {
        StartCoroutine("TestCoroutine");
    }

    IEnumerator TestCoroutine()
    {
        Debug.Log("코루틴 시작");
        yield return new WaitForSeconds(3.0f);
        Debug.Log("3초 후 빠져나감");
    }
}
특정 오브젝트를 페이드 아웃 시키는 예제


public class FadeOut : MonoBehaviour {

 private SpriteRenderer spriteRenderer;

 void Start () {
  spriteRenderer = GetComponent ();
 }

 void Update () {
  Color color = spriteRenderer.color;
  if (color.a > 0.0f) {
   color.a -= 0.1f;
   spriteRenderer.color = color;
  }
 }
}


특정 오브젝트를 1초동안 페이드아웃

public class FadeOut : MonoBehaviour {

 private SpriteRenderer spriteRenderer;

 void Start () {
  spriteRenderer = GetComponent ();
  StartCoroutine ("RunFadeOut");
 }

 void Update () {
  
 }

 IEnumerator RunFadeOut() {
  Color color = spriteRenderer.color;
  while (color.a > 0.0f) {
   color.a -= 0.1f;
   spriteRenderer.color = color;
   yield return new WaitForSeconds(0.1f);
  }
 }
}

댓글

이 블로그의 인기 게시물

유니티 오브젝트 서서히 사라지게

WebView에서 YOUTUBE 동영상 플레이 방법