본문 바로가기

내배켐 Unity TIL

Unity 17일차 TIL - 재귀 함수 (스택 관리)

TextRPG 게임 플레이 도중 어떤 동작을 다 끝내고 마무리를 했을 때 생각지도 못했던 부분에서 다시 시작되는 경우가 생겼었다. 왜 그런건지 고민을 하다가 디버깅을 통해서 확인 해본 결과 호출 스택 관리 부분에서 함수가 계속 누적해서 쌓이는 것을 확인할 수 있었다.

 

TextRPG를 구현 할 때 GameManager라는 class에서 MainMenu함수를 통해 구현한 다른 class에 접근을 하게 된다. 그렇다보니 함수를 제대로 끝내지 않고 다시 MainMenu 함수로 왔다 갔다 하거나, 아니면 처음 접근한 class에 계속 호출이 스택되는 현상이 생겼었다.

 

그래서 첫 호출을 했던 그곳으로 다시 돌아오도록 return;을 함수 끝에 넣어줘서 동작이 끝났을 때 첫 호출을 했던 지점으로 돌아오게끔 수정해서 해결했었다.

 

여러 개의 함수를 사용할 때, 즉 구조가 재귀 함수의 형태라면 호출 스택 관리에 신경써야 할 것 같다.