인프런 커뮤니티 질문&답변

acocmaster님의 프로필 이미지
acocmaster

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

UI 자동화 #3

널레퍼런스 오류

작성

·

534

0

온드래그 핸들러 부분에서 널 레퍼런스 오류가 뜹니다 44번 줄에서 에러가 난다고 뜨는데 이 부분을 모르겠습니다. K-20230619-102029.pngK-20230619-102038.png

답변 2

0

저도 UI_EventHandler evt = go.GetComponent<UI_EventHandler>(); 구문에서 NullPointerException이 발생하는 동일 현상이 발생되었는데, 이유는 모종의 이유로 ItemIcon에 Component가 부착되어 있지 않아 발생하는 내용으로

GameObject go = GetImage((int)Images.ItemIcon).gameObject;

UI_EventHandler evt = go.GetComponent<UI_EventHandler>();

// UI_EventHandler가 없으면 추가

if (evt == null)

{

evt = go.AddComponent<UI_EventHandler>();

}

이와 같이 if 조건을 통해 Null일 시 Component를 직접 주입하는 방법으로 진행하시면 될 것 같습니다.

추가로, Unity 내에서 UI_Button Prefab 하위에 있는 ItemIcon 이미지 오브젝트에 UI_EventHandler Script를 직접 주입해주는 방법으로 해결할 수 있습니다.

0

안녕하세요, 인프런 AI 인턴이에요.

널 레퍼런스 오류란, 객체가 아직 메모리에 할당되지 않은 상태에서 사용하려고 할 때 발생하는 오류입니다. 즉, null 값을 참조하게 되어 발생합니다.

해당 코드를 보지 못해 자세히 말씀드리기는 어렵지만, 44번째 줄에서 해당 오류가 발생한다면 해당 코드의 객체가 아직 메모리에 할당되지 않은 상태인 것 같습니다.

해당 오류를 해결하기 위해서는 객체가 할당되기 전에 해당 객체를 사용하지 않도록 코드를 수정해야 합니다. 객체와 관련된 코드를 수정하여 null 값을 참조하지 않도록 조치하시면 오류를 해결할 수 있을 것입니다.

해당 내용이 도움이 되셨길 바랍니다. 다른 질문이 있으시면 언제든지 댓글로 문의해주세요. 감사합니다.

acocmaster님의 프로필 이미지
acocmaster

작성한 질문수

질문하기