Map.cs에서 던전 스테이지를 호출할 때, SelectDungeonStage(int stage)의 매개변수 stage(1 ~ 3) 값에 -1을 하여 dungeons[] 배열을 0번부터 호출하려 했다.
public int dungeonStage = 0;
public void SelectDungeonStage(int stage)
{
dungeonStage = ++stage;
MakeMonsters(dungeons[dungeonStage].dungeonMonsterType);
}
를 통해 0 ~ 2번 배열을 호출하려 했으나, stage값이 계속해서 감소를 하여 dungeonStage의 값이 3 이상으로 넘어가 에러가 출력되는 문제가 발생했다.
해당 문제로 인해 왜 인지는 모르겠지만 ShowResult()가 계속해서 쌓여서 출력되는 문제까지 함께 발생했다. 나는 while문과 재귀 때문에 생기는 문제인 줄 알았으나, 왜 인지는 모르겠지만 해당 stage 값 문제를 수정하니 함께 해결된 듯 하다.
내가 while문으로 쩔쩔 매는 동안, 팀원분이 해당 문제를 해결해 주셨다. dungeonStage가 3이상이 되지 않도록 예외 처리를 하셨더니 문제가 해결되었다.
if (dungeonStage >= 3) dungeonStage = 3;
dungeonStage의 값이 문제가 되는 것은 이해가 되는데, 해당 문제로 인해 ShowResult()가 계속해서 출력되던 것 까지 해결된 이유를 나는 도통 모르겠다....
내가 생각한 경우는, dungeonStage 값에 이상한 값이 계속해서 들어가자 던전 매니저가 여러 번 생성이 된 걸까? 모르겠다...
오늘 하루 종일 씨름하다 팀원과 내 문제를 공유해서 문제를 해결할 수 있었다. 아니였으면 계속 끙끙 앓다가 마감일이 되었을지도... 확실히 협업을 하는 이유를 알겠다. 내가 못 찾은 해결 방법을 찾아주실 수도 있으니까!
그리고 제일 중요한 것은,
이번 문제도 dungeonStage의 값을 내가 사전에 제한해두었다면 예방할 수 있었을 문제다. 예외 처리를 습관화하자!