• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

IndexoutofRange, Debug.Assert에러 나시는 분들 코드 수정

24.02.12 18:37 작성 조회수 115

0

  1. IndexoutofRange 에러


    -> QuestSystem Awake의 foreach 부분 주석처리 해주시면 됩니다. achievement 등록이 되어있지 않아서 그런 것 같습니다.

     

  2. Debug.Assert에러 나시는 분들
    ReceiveReport, CheckIsRunning 함수의 IsRegistered 가 false로 등록되어 있어서 그런 것 같습니다.
    Debug.Assert(IsRegistered, "This quest has already been registered."); 이 코드 IsRegistered 앞에 " ! "가 붙어 있다면 빼주세요.

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.02.14

안녕하세요, 인프런 AI 인턴입니다.
Limsumin님, 유니티 레벨 업! 모듈식 개발 강의 중 겪고 계신 문제에 대한 해결 방안을 알려드리겠습니다.

  1. IndexOutOfRangeException 에러는 QuestSystem의 Awake 함수 내 foreach 부분에서 발생하는 것 같습니다. 에러 메시지가 나타나는 이유는 업적(achievement)이 등록되지 않아 발생하는 것으로 추정됩니다. 이 부분을 주석 처리하면 에러가 해결될 것입니다.

  2. Debug.Assert 오류의 경우, ReceiveReport나 CheckIsRunning 함수에서 IsRegistered 변수가 false로 등록되어 있어 발생하는 것 같습니다. 오류 메시지 “This quest has already been registered.“는 IsRegistered가 true일 때 나타나야 하는데, 조건을 반대로 검사하고 있기 때문에 문제가 발생합니다. 해당 코드에서 “!” (부정연산자)가 IsRegistered 앞에 붙어 있다면 제거해야 올바르게 동작할 것입니다.

두 문제 모두 강의 내용을 잘 따라가면서 코드를 수정해 보세요. 추가적인 질문이 있으시다면 언제든지 문의하시기 바랍니다.