인프런 커뮤니티 질문&답변
경고 질문
작성
·
282
퀴즈
Unity 게임 개발 프레임워크에서 Manager를 사용하는 주된 목적은 무엇일까요?
특정 오브젝트의 애니메이션을 제어하기 위해서
자주 사용되는 기능이나 시스템을 중앙에서 관리하기 위해서
캐릭터의 스탯 값을 저장하기 위해서
게임 씬의 배경 음악을 재생하기 위해서
답변 1
1
경고는 둘째치고 저 빨간색 !부터 처리하셔야 합니다.
완성된 코드를 다운받아 비교를 해보시기 바랍니다.
우선 가장 심각한 문제는 _stat이 NULL로 뜨고 있는데요. 왜 안채워졌는지를 찾아봐야 합니다.
원래라면 위 부분에서 _stat이 채워줘야 하는데,
Init()이 호출되지 않았거나, GetComponent<Stat>()이 NULL을 반환했거나 둘 중 하나입니다.
다시 말하지만 디버깅 연습을 많이 해야 합니다.
Breakpoint를 걸고 유니티 연동해서 멈춰보시면 안 걸리고 있는데,
그렇다는 것은 Init()을 호출하는 부분이 없다는 의미입니다.
BaseController쪽에 다음과 같이 Start를 넣어주시면 됩니다.
그 다음에 또 NULL 크래시가 나는데,
GetObject 쪽에서 에러가 나고 있습니다.
Bind는 분명히 호출되고 있는데 GetObject를 못찾는다면, 프리팹에 문제가 있을 확률이 높습니다.
Slider의 이름을 HPBar로 이름을 수정해주시면 됩니다.
마지막으로 경고가 뜨는데
영어를 읽어보면 CrossFade State could not be found라네요.
RUN state를 못찾는 이유는 Animator쪽에 이름을 RUN으로 안해놔서 그렇습니다.
대소문자 구분하는데 R'un'으로 해놔서 그런거네요






