강의

멘토링

커뮤니티

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

Hging님의 프로필 이미지
Hging

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘

A* 구현 Part2

null 버그 오류 질문

해결된 질문

작성

·

250

0

 
안녕하세요

 전까지 오류 나지 않았던 곳에서 오류가 나서 질문 드립니다. (해결은 했는데  해결 됐는지를 모르겠습니다. )

 

대각선 이동 하기 전까지는 오류 나지 않았는데

대각선을 추가한 이후로

 

CalcPathFromParent 에서 다음과 같은 에러가 납니다.

“System.NullReferenceException: Object reference not set to an instance of an object at Algorithm.Player.CalcPathFromParent“

 

다른 학생의 질문에 대한 선생님의 답변을 참고해서 디버깅을 해보았습니다.

 

아래는 해당부분 제 코드 입니다.

while (parent[y, x].Y != y || parent[y, x].X != x)

            {

                _points.Add(new Pos(y, x));

                y = parent[y, x].Y;

                x = parent[y, x].X;

            }

 

 

x = parent[y, x].X; 에서 에러가 나더라고요

그떄의 x, y값은

x= 6,

y= 22 였습니다.

 

Parent 배열에서 (22,6) 주변 8개의 위치를 봐도 (22,6)은 없더라고요!

어느 부분에서 에러가 나는지는 알게됐는데

왜 나는지를 모르겠습니다.

                

강의를 다시 둘러보니

                _points.Add(new Pos(y, x));

                Pos pos = parent[y, x];

                y = pos.Y;

                x = pos.X;

선생님께서는 이렇게 pos 로 한번 거쳐서 하셨길래 이렇게 고치니까 해결이 됐습니다!

 

Pos 를 한번 거치는 것과 거치지 않는 것에 차이가 있나요?

답변 1

1

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

  y = parent[y, x].Y;

  x = parent[y, x].X;

 

y가 다른 값으로 바뀌기 때문입니다.

 

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

헉 감사합니다!! 

Hging님의 프로필 이미지
Hging

작성한 질문수

질문하기