Unity C# 코루틴 Coroutine
Intro
C# 코루틴
코루틴
코루틴은 진입점이 여러개인 함수이며 코루틴을 이용하면 어떤 작업을 필요에 따라 시간 간격에 따라 처리할 수 있다.
일반 메서드
void Start()
{
LoopA();
LoopB();
}
void LoopA()
{
for(int i=0; i<100; i++)
{
...
}
}
void Loop2()
{
for(int j=0; j<100; j++)
{
...
}
}
위와 같이 일반적인 메서드는 LoopA
가 끝나고나서 LoopB
가 실행된다.
코루틴
Coroutine myCoroutine1;
Coroutine myCoroutine2;
void Start()
{
myCoroutine1 = StartCoroutine(LoopA());
myCoroutine2 = StartCoroutine(LoopB());
StartCorutine(Stop());
}
IEnumerator LoopA()
{
for(int i=0; i<100; i++)
{
...
yield return new WaitForSeconds(1f);
}
}
IEnumerator Loop2()
{
for(int j=0; j<100; j++)
{
...
yield return new WaitForSeconds(1f);
}
}
IEnumerator Stop() //
{
yield return new WaitForSeconds(2f);
StopCoroutine(myCoroutine1);
}
1초마다 LoopA와 B가 실행되며 Stop()에 의해 2초뒤에 LoopA는 멈추게된다.
이러한 코루틴을 활용해서 캐릭터의 버프를 일정시간뒤에 사라지게 하거나 캐릭터가 서서히 사라지게 하는 효과 등등 다양한 기능을 구현할 수 있다.
실행결과
참고자료
https://youtu.be/ePl2C4LTKGQ?list=PLUZ5gNInsv_O7XRpaNQIC9D5uhMZmTYAf
댓글남기기