728x90
반응형
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CoroutineTest : MonoBehaviour
{
class TempClass
{
public int index = 0;
}
class CoroutineEx : IEnumerable
{
public IEnumerator GetEnumerator()
{
yield return 1;
yield return null;
yield return new TempClass() { index = 100 };
yield return "String";
yield break; // 정지
yield return 5;
}
}
Coroutine tempC = null;
private void Start()
{
CoroutineEx test = new CoroutineEx();
// coroutine은 Object 형식으로 아무거나 다 받을 수 있음 (클래스도~!)
foreach (System.Object item in test)
{
if (item != null && item.ToString() == "CoroutineTest+TempClass")
{
TempClass temp = item as TempClass;
Debug.Log(temp.index);
}
Debug.Log(item);
}
StartCoroutine(TempCoroutine(1f));
// 요렇게 시작한 coroutine을 받을 수 있음
tempC = StartCoroutine(TempStop());
StartCoroutine(TempStopTest());
}
IEnumerator TempCoroutine(float wait)
{
for (int i = -1; ++i < 5;)
{
if (i == 4)
yield break;
yield return new WaitForSeconds(wait);
Debug.Log("지금!");
}
}
IEnumerator TempStop()
{
for (int i = -1; ++i < 5;)
{
yield return new WaitForSeconds(1f);
Debug.Log("멈춰!");
}
}
IEnumerator TempStopTest()
{
yield return new WaitForSeconds(1f);
// 아까 위에서 받은 coroutine을 이릏게도 사용 가능
StopCoroutine(tempC);
tempC = null;
}
}
반응형
'Unity > Tips' 카테고리의 다른 글
Unity Script 한글 깨짐 현상 (0) | 2021.12.06 |
---|---|
Unity 순서대로 초기화하고 싶을 경우 코드를 이런 식으로 ~---~_~-~- (0) | 2021.11.30 |
Unity Canvas(UGUI) refresh (0) | 2021.11.23 |
Unity Assets폴더에 있는 스크립트 혹은 오브젝트가 Scene의 어디에서 사용되고 있는지 보고 싶은 느낌 (0) | 2021.11.08 |
Unity warning 무시 (경고 무시) (0) | 2021.11.06 |