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

GoodBBaK님의 프로필 이미지
GoodBBaK

작성한 질문수

[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작

젬 떨구기

xml 로드 문제

해결된 질문

작성

·

655

1

안녕하세요.

코딩을 시작한 지 얼마 안 되어 공부 겸 실제 게임 발매를 경험하기 위해 강의를 수강한 학생입니다.

잘 따라가던 도중에 '젬 떨구기' 강의 부분에서 xml 파일이 로드되지 않는 문제가 발생하였는데요. 이를 수정하기 위해 구글링부터 시작해서 챗GPT4에 물어보는 등 여러 시도를 해보았으나, 도저히 저 혼자 힘으로는 해결이 어려워 고심 끝에 질문 글을 남기게 되었습니다.

 

Addressables Groups에는 강사님이 하신 것과 동일하게 프리팹, xml, png 파일 등을 등록하고 Label을 PreLoad로 설정한 상태이고, 코드는 제가 쓴 코드가 혹시 문제가 있나 싶어 강의 자료로 첨부해 두신 코드로 덮어씌워봤는데도 아래와 같이 xml 파일 로드 시 null이 반환되는 상태입니다.

 

현재 진행 중인 프로젝트가 문제가 있을까 싶어 새 프로젝트를 만든 후 폴더 경로부터 시작해서 모든 과정들을 다시 진행해 보았으나 동일한 에러가 발생하더군요.

 

되도록이면 제 스스로 이 문제를 해결해 보려고 했지만 유니티란 툴도 처음이고, 코드를 배운 것도 이번이 처음인지라 들이는 시간에 비해 도저히 진척이 없어서 염치 불구하고 이렇게 글 남깁니다.

 

바쁘시겠지만 확인 부탁 드리겠습니다.

좋은 강의 만들어 주셔서 감사합니다.

 

NullReferenceException: Object reference not set to an instance of an object

DataManager.LoadXml[Loader,Key,Item] (System.String name) (at Assets/@Scripts/Managers/Core/DataManager.cs:43)

DataManager.Init () (at Assets/@Scripts/Managers/Core/DataManager.cs:21)

GameScene.StartLoaded () (at Assets/@Scripts/Scenes/GameScene.cs:22)

GameScene.<Start>b__0_0 (System.String key, System.Int32 count, System.Int32 totalCount) (at Assets/@Scripts/Scenes/GameScene.cs:13)

ResourceManager+<>c__DisplayClass5_2`1[T].<LoadAllAsync>b__1 (T obj) (at Assets/@Scripts/Managers/Core/ResourceManager.cs:86)

ResourceManager+<>c__DisplayClass4_0`1[T].<LoadAsync>b__0 (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle`1[TObject] op) (at Assets/@Scripts/Managers/Core/ResourceManager.cs:69)

DelegateList`1[T].Invoke (T res) (at ./Library/PackageCache/com.unity.addressables@1.21.12/Runtime/ResourceManager/Util/DelegateList.cs:75)

UnityEngine.Debug:LogException(Exception)

DelegateList`1:Invoke(AsyncOperationHandle`1) (at ./Library/PackageCache/com.unity.addressables@1.21.12/Runtime/ResourceManager/Util/DelegateList.cs:79)

UnityEngine.ResourceManagement.Util.DelayedActionManager:LateUpdate() (at ./Library/PackageCache/com.unity.addressables@1.21.12/Runtime/ResourceManager/Util/DelayedActionManager.cs:162)

 

답변 1

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

위 내용만으론 알 수 없습니다.

오히려 실제 xml 파일이 정말 잘 있는지, Addressable 등록이 되어 있는지
및 파일 파싱 부분 등의 스샷을 보여주셔야 합니다.

GoodBBaK님의 프로필 이미지
GoodBBaK
질문자

imageimageimageimageimageimageimage답글 감사합니다.

말씀하신 스크린샷 첨부 드립니다.

DataManagers에 있는 Init() 함수의

SkillDic = LoadXml<Data.SkillDataLoader, int, Data.SkillData>("SkillData.xml").MakeDict();

이 부분은 스크린샷에 있는 것과 다르게 아직 진행하지 않은 부분이라 주석 처리한 상태입니다.

Rookiss님의 프로필 이미지
Rookiss
지식공유자

image여기에 breakpoint를 걸고 실행했을 때 textAsset이 로드는 됐나요?
즉 파일은 로딩했는데 파싱이 실패했는지,
파일 로딩조차 실패했는지를 확인해보시기 바랍니다.

GoodBBaK님의 프로필 이미지
GoodBBaK
질문자

imagetextAsset 부분이 null로 출력되고 있습니다.

Assets\@Resources\Data

올려주신 수업 자료도 그렇고, 제 프로젝트에서도 그렇고 현재 PlayerData.xml 파일은 위 경로에 위치해 있는데, 혹시 경로가 잘못된 걸까요?

GoodBBaK님의 프로필 이미지
GoodBBaK
질문자

아 GameScene에서

Managers.Resource.LoadAllAsync<GameObject>("PreLoad", (key, count, totalCount)

GameObject를 Object로 바꾸지 않아서 GameObject가 아닌 xml 파일은 불러오지 못했던 것을 확인했습니다.

강의를 꼼꼼하게 보지 않아서 생긴 이 간단한 문제 때문에 며칠 동안 끙끙댄 게 참 허무하네요. 그래도 한편으로는 기억에 남을 공부가 된 것 같기도 하네요.

시덥잖은 문제로 강사님 시간을 뺏은 것 같아 죄송스럽네요.

확인 감사 드립니다.

앞으로 남은 강의도 잘 보고 배우도록 하겠습니다!

Rookiss님의 프로필 이미지
Rookiss
지식공유자

오 ㅋㅋㅋㅋ 축하드립니다! 아무리 봐도 이상한 부분이 없었는데 잘 찾으셨네요

GoodBBaK님의 프로필 이미지
GoodBBaK

작성한 질문수

질문하기