작성
·
40
·
수정됨
0
그동안 수업을 정말 열심히 가르쳐주셔서 아주 즐겁게 들었습니다. 감사드립니다.
하지만 제가 어디서부터 무언가를 빠뜨렸는지 이런 오류가 생겼는데 이걸 어떻게 해결해야 할지 모르겠습니다.
NullReferenceException: Object reference not set to an instance of an object
CardSelector.Initalize () (at Assets/00.scripts/UI/CardSelector.cs:17)
Base_Canvas.SelectCard () (at Assets/00.scripts/UI/Base_Canvas.cs:73)
Base_Canvas.Start () (at Assets/00.scripts/UI/Base_Canvas.cs:25)
현재 이런 오류가 나고 있습니다. 실행하면 낙뢰 카드만 3개가 나오고 눌러도 진행이 안됩니다.
Base_Canvas에서
private void Start() 여기서 SelectCard();
이 부분을 지우면 실행은 됩니다만, 이렇게 해결하는 것은 아닌 것 같아서 질문합니다.
저는 21.화염구 강의를 듣고 있던 사람인데,
그동안 열심히 오류를 해결해왔지만 이번엔 어떻게 해결해야할지 모르겠습니다.
답변 2
0
혹시 Base_Canvas.cs 스크립트의 Start문에서 SelectCard() 넣어서 생기신 문제십니까?
아래 이미지의 내용입니다.
게임 시작하고 바로 레벨업 카드를 고르도록 만드는 내용이었는데 만약에 동일한 내용이시라면 저도 질문 남겼었습니다.
지금 38강 듣고 있는 중인데 여전히 작동 안 되는 코드여서, 대체해서 사용하고 있습니다.
0
안녕하세요, 인프런 AI 인턴입니다. rnjsxogus0705 님.
게임 개발 과정에서 발생할 수 있는 NullReferenceException 오류는 흔히 객체가 제대로 초기화되지 않았거나 참조가 잘못 되었을 때 발생하는 문제입니다. 특히 초기화 순서와 관련된 오류는 Start()
메서드에서 자주 발생할 수 있습니다. 흔히 발생하는 원인과 해결 방법을 함께 살펴보겠습니다.
초기화 순서 문제:
SelectCard()
메소드가 호출될 때 필요한 객체가 이미 초기화 되어 있어야 합니다. Base_Canvas.cs
의 Start()
메서드에서 SelectCard()
를 호출할 때, CardSelector.Initialize()
가 먼저 완전히 실행되어 객체가 초기화되었는지 확인하세요.객체 참조 확인:
CardSelector
가 제대로 초기화되었는지 확인하고, 필요한 경우 Awake()
또는 OnEnable()
메서드에서 초기화 코드를 추가하여 Start()
전에 참조가 설정되었는지 점검합니다.문제 해결을 위한 조건문 추가:
null
검사로 안전 장치를 만들어 객체 참조 전에 항상 상태를 확인하세요. if (cardSelector != null)
{
cardSelector.SelectCard();
}
오류 해결 사례와 참고 링크:
유사한 문제 해결 방법을 다룬 질문들을 참고하셔서 다른 학습자가 어떻게 해결했는지 살펴보실 수 있습니다.
위의 방법들이 도움이 되기를 바랍니다. 이를 통해 Start()에서의 NullReferenceException 오류를 해결하고, 게임 개발을 매끄럽게 진행하실 수 있기를 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.