TIL
[TIL] 내일배움캠프_Unity 팀과제(feat.코루틴)
Hwone
2023. 9. 13. 21:09
플레이어가 스턴에 걸리면 깜빡거리는 효과를 적용하기 위해 코루틴을 공부해서 적용해보았다
코루틴 : 비동기적으로 실행되며, 일시 중단하거나 일정 시간 동안 대기할 수 있다
* 코루틴을 사용할 때 보통 Update 말고 다른 곳에서 반복 실행하고 싶을 때 쓰는 느낌?
*비동기적이란?
: 다른 작업을 기다리지 않고 계속 진행될 수 있는 상태 즉, 작업이 완료되기를 기다리지 않고 다른 작업을 수행할 수 있도록 함
IEnumerator StunEffect()
{
// WaitForSeconds 객체를 미리 생성하고 변수에 할당하여 가비지 생성을 최소화
WaitForSeconds waitTime = new WaitForSeconds(0.2f);
for(int i =0; i<=2; i++)
{
playerSpriteRenderer.color = Color.gray;
yield return waitTime;
playerSpriteRenderer.color = Color.white;
yield return waitTime;
}
}
yield return : 코루틴을 일시 중단하고 나중에 계속 실행되도록 한다, 코루틴이 특정시간 동안 대기할 때 사용
WaitForSeconds : 대기할 시간을 정의, 코루틴이 일시 중단 되어 다른 작업을 수행하거나 대기하며 시간이 경과될 때 까지 아무것도 하지 않는다 (단점은 new 키워드로 가비지 생성하게 된다 해결 방법은 캐싱 잘 해주면 됨)
추가로 아이템 버프 아이콘도 만드려 했으나 아직 더 공부를 해봐야 할것 같다... 코루틴에 대해서 알고 단점만 조심하면 진짜 편하고 좋을 것 같아서 자세한 공부를 해야겠다