240201-TIL

2024. 2. 1. 21:08내일배움캠프

2월 1일

 

오늘은 그동안 개념을 잘 모르고 사용해왔던 코루틴에 대해 정리해보도록 하겠다.

 

코루틴은 어떤 상황에서 필요할까?

 

유니티에선 반복적으로 실행하기 위해 Update문에 코드를 작성을 한다.

 

하지만 이 Update문이 아닌 곳에서도 반복적으로 코드가 실행되어야 할 필요가 있을때가 있다.

 

그때 바로 이 코루틴이란 녀석을 사용하는것이 매우 효과적이다

 

또한 코루틴을 사용한다면 내가 필요할 때만 반복하고 필요 없을때는 사용하지 않는 

 

그런 코드의 작성도 가능하고 당장 실행하지 않고 대기하고 있다가 특정 시간 뒤에 동작하게 하는 등

 

여러가지 활용방법이 있고 코루틴의 적절한 사용은 자원관리를 매우 효율적으로 할 수 있다.

 

그렇다면 코루틴? 어떻게 사용하는지 알아보자

 

코루틴(Coroutine)

더보기

코루틴을 사용하기 위해서는 2가지의 필수 조건이 있다.

 

첫번째 IEnumerator라는 반환형으로 시작해야한다.

 

두번째 Yield return이 반드시 함수 내부에 존재해야한다.

 

결과적으로는 이런 모양새가 된다 

 

yield return + 조건의 형태로 리턴을 해주게 되는데

 

이 조건에는 여러가지 종류가 있다.

 

여러가지 조건의 yield return + 조건

  • yield return null; : 다음 프레임에 실행
  • yield return new WaitForSeconds(float); : 매개변수로 입력한 숫자에 해당하는 초만큼 기다렸다가 실행
  • yield return new WaitforSecondsRealtime(float); : 매개변수로 입력한 숫자에 해당하는 초만큼 기다렸다가 실행
  • yield break; : 코루틴 종료

 

그 이외의 여러가지 더 있지만 많이 사용하는 4가지를 정리했다

 

2번과 3번의 경우는 Realtime기준이냐 기준이 아니냐 즉 유니티 상의 시간으로 기다릴꺼냐?

 

현실 시간으로 기다릴꺼냐의 차이다. 유니티 시간은 TimeScale로 조절이 가능하니 TimeScale로 

 

시간을 멈추게 만든다면 2번째 방식의 코루틴은 시간을 다시 흐르게 만들기 전엔 실행되지 않는다.

 

자 이제 코루틴을 작성했다면 저 작성한 코루틴은 어떻게 작동시켜야 하느냐

 

일반적인 메서드들이라면 이렇게 사용하면 되겠지만

삐빅 StartCoroutine을 사용하여 호출하여야 하옵니다 라고 눈치를 준다.

 

두가지 방법 모두 사용할수있다.

 

자 이제 코루틴을 어떻게 작성해야하는지 작성에 필요한게 무엇인지 작성을 하고 어떻게 실행시켜야 하는지

 

알아보았다면? 어떻게 활용하면 좋을지에 대해서도 생각을 해봐야한다.

 

나는 Unity로 게임을 만들고 있으니.

 

플레이어의 캐릭터가 있다고 가정해보자. 이 캐릭터가 독이라는 디버프에 걸려 2초마다 Hp가 감소한다고 생각하면

 

이런 느낌의 코루틴으로 만들어 활용하지 않을까?

 

 

 

오늘은 사용하기 무서웠던 코루틴을 무섭지 않게 만들어보았다.

 

모르면 무섭지만? 알면 편해진다. 무서운것 없는 유니티가 되는 그날까지 열심히 공부하자

 

2월 1일 TIL은 여기서 마치도록 하겠다.

 

 

'내일배움캠프' 카테고리의 다른 글

240205-TIL  (0) 2024.02.05
240202-TIL  (0) 2024.02.02
240131-TIL  (0) 2024.01.31
240130-TIL  (0) 2024.01.30
240129-TIL  (0) 2024.01.29