강의

멘토링

로드맵

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

또배고프다님의 프로필 이미지
또배고프다

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)

MapTool

if (tm == null) return; 을 포함할 경우 유니티가 화를 냅니다

작성

·

376

0

우선, 새해 복 많이 받으세요. 선생님.

다름이 아니라 해당 강좌 약 15분까지의 내용 중에서

MapEditor.cs에 if (tm == null) return; 을 포함할 경우 유니티에서 화를 내면서 

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

MapEditor.GenerateMap () (at Assets/Editor/MapEditor.cs:31) 를 출력하고,

output.txt에 아무것도 써주질 않습니다.

if (tm == null) return;을 삭제하면 정상적으로 만들어집니다. 강좌에선 포함해도 잘 진행되는걸로 나왔는데 말이죠.

(강좌 15분 이후에 결국 해당 if문은 필요없어서 삭제하시긴 합니다만 저기서 막혀서 한참 씨름했네요)

무엇이 문제였는지 궁금해서 여쭤봅니다.

 

퀴즈

타일맵 기반 환경에서 이동 가능한 영역과 불가능한 영역을 분리하여 관리하기 위해 사용된 주된 방법은 무엇일까요?

하나의 타일맵에 모든 정보를 저장하고 태그로 구분한다.

충돌 정보만을 담는 별도의 타일맵 레이어를 사용한다.

모든 타일에 물리적인 Collider 컴포넌트를 추가한다.

카메라의 시야 범위로 이동 가능 영역을 제한한다.

답변 1

0

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

NULL 크래시는 개발할 때 아주 높은 확률로 만나는 문제이기 때문에
저에게 물어보시면 안 되고 스스로 분석하셔야 합니다.
툴에서 실행하는 것도 마찬가지로 breakpoint를 걸고 디버깅이 가능하니,
어느 부분이 NULL인지 확인하고 그 이유를 역으로 추적하면서 생각해보시기 바랍니다.

 

후...유레카...찾았습니다. Tilemap_Collision 오브젝트가 꺼져있었습니다. 두 눈 멀쩡히 뜨고 있는데 왜 이게 안 보였을까요.

직접 분석하라는 조언 감사드립니다. 있을 법한 실수를 선생님이 직접 찍어주셨으면 해결은 바로 했겠지만 아마 또 금방 까먹었을거에요.

MapManager 강좌에서 제가 겪었던 부분을 해결해주시는군요. 혹시 다른 분들도 같은 어려움을 겪으셨다면 해당 강좌 참고하시기 바랍니다.

또배고프다님의 프로필 이미지
또배고프다

작성한 질문수

질문하기