작성
·
46
0
SelectCard()를 시작부터 작동하도록 넣었을 때, 오류가 발생하였습니다.
그 전에는 강의 내용과 동일한 오류를 내면서 강의 내용대로 따라왔는데 해당 구간의 오류를 이해해보려다가 임시 해결책으로 대체하였습니다.
NullReferenceException: Object reference not set to an instance of an object
CardSelector.Initialize () (at Assets/Packages/06.Script/UI/CardSelector.cs:17)
Base_Canvas.SelectCard () (at Assets/Packages/06.Script/UI/Base_Canvas.cs:61)
Base_Canvas.Start () (at Assets/Packages/06.Script/UI/Base_Canvas.cs:45)
이런 오류가 발생하였습니다.
다음과 같이 조치를 취해서 정상 작동하고 있으나 혹시나 동일한 이슈가 발생하셔서 시작부터 레벨업을 못 하시는 분들이 계실까봐 글 남깁니다.
저는 Update()문에다가 레벨업해서 카드 고르는 메서드를 별도로 입력해두었습니다.
그리고 Start() 문에 있는 SelectCard() 메서드를 주석처리하였습니다.
private void Update()
{
TimerText.text = Util_UI.FormatTime(MANAGER.SESSION.GameTime);
if (Input.GetKeyDown(KeyCode.Space))
{
SelectCard();
}
}
혹시나 이 이슈를 이해하고 해결하신 분이 계신다면 꼭 좀 답변 부탁드립니다...
답변 2
0
안녕하세요, 인프런 AI 인턴입니다. jwchoi1997 님.
게임 개발 과정에서 발생할 수 있는 NullReferenceException 오류는 흔히 객체가 제대로 초기화되지 않았거나 참조가 잘못 되었을 때 발생하는 문제입니다. 특히 초기화 순서와 관련된 오류는 Start() 메서드에서 자주 발생할 수 있습니다. 흔히 발생하는 원인과 해결 방법을 함께 살펴보겠습니다.
초기화 순서 문제:
SelectCard()
메소드가 호출될 때 필요한 객체가 이미 초기화 되어 있어야 합니다. Base_Canvas.cs의 Start() 메서드에서 SelectCard()
를 호출할 때, CardSelector.Initialize()
가 먼저 완전히 실행되어 객체가 초기화되었는지 확인하세요.객체 참조 확인:
CardSelector
가 제대로 초기화되었는지 확인하고, 필요한 경우 Awake()
또는 OnEnable()
메서드에서 초기화 코드를 추가하여 Start() 전에 참조가 설정되었는지 점검합니다.문제 해결을 위한 조건문 추가:
null
검사로 안전 장치를 만들어 객체 참조 전에 항상 상태를 확인하세요. if (cardSelector != null)
{
cardSelector.SelectCard();
}
오류 해결 사례와 참고 링크:
유사한 문제 해결 방법을 다룬 질문들을 참고하셔서 다른 학습자가 어떻게 해결했는지 살펴보실 수 있습니다.
위의 방법들이 도움이 되기를 바랍니다. 이를 통해 Start()에서의 NullReferenceException 오류를 해결하고, 게임 개발을 매끄럽게 진행하실 수 있기를 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
0
안녕하세요, 해당 오류의 경우 셋팅 문제를 확인하기 위하여 원격이나, 프로젝트를 제 메일로 보내주신다면 해결 후 설명 드릴 수 있을 것 같습니다 : )
ceo@pinous.co.kr
로 부탁드리겠습니다!
감사합니다.
강사님의 답변 덕분에 제 오류일 확률이 높아졌음을 인지하였습니다.
앞으로의 강의를 수강하면서, 놓친 부분이나 부족한 부분을 채워가면서 오류가 어디서 생겼는지 학습하겠습니다.