유니티의 Update문은 매 프레임마다 실행된다.
// Update 함수는 매 프레임마다 실행된다. 60프레임 환경이라면 1초에 60번 실행
private void Update()
{
// 실행할 코드
}
이때 매 프레임마다 꼭 실행할 필요가 없는 함수들,
예를 들어서 n초마다 체력이 닳는 독 시스템, 1초 간격의 타이머 등등
이럴 때, Coroutine을 이용해서 실행 간격을 줄이면 불필요한 호출이 줄어들기 때문에 성능이 더 올라간다.
private float coroutineTime = 1f; // 실행 간격
private void Start()
{
StartCoroutine(CountTime());
}
private IEnumerator CountTime()
{
while (true)
{
// 실행할 코드
yield return new WaitForSeconds(coroutineTime);
}
}
만약 코루틴을 멈추고 싶다면 StopCoroutine(CountTime()); 을 이용하면 된다.
코루틴 매니저를 이용하면 더욱 효율적인 최적화가 가능하다.
코루틴 매니저 관련 글 : https://bo-ni.tistory.com/12