inflearn logo
강의

講義

知識共有

[C#とユニティで作るMMORPGゲーム開発シリーズ] Part2: データ構造とアルゴリズム

BFSを利用した経路探索実装

NullReferenceException 예외) 같은 실수하시는분 계실까봐 남겨요

66

yuncoco

投稿した質問数 1

0

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

이 while 문에서 NullReferenceException 예외가 걸리는경우.

Initialize 함수를 확인해보시길 바랍니다.

public void Initialize(int PosY, int PosX, Board board)
{

    PosY = PosY;
    PosX = PosX;

    _board = board;
    BFS();
}

이부분을 이렇게 수정하시거나

        public void Initialize(int posY, int posX, Board board)
        {
            PosY = posY;
            PosX = posX;
            _board = board;

            BFS();
        }

또는 this. 으로 수정해도 되네요.

C#

回答 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 윤코코님.

NullReferenceException 관련 오류는 코드에서 객체나 변수가 초기화되지 않은 상태에서 접근할 때 발생하는 문제입니다. 질문하신 내용에서는 Initialize 메서드의 매개변수 이름과 인스턴스 변수의 이름이 같아서, Initialize 메소드 내부에서 전달받은 매개변수가 그대로 사용되지 않고 있음을 알 수 있습니다.

귀하의 사례에서 Initialize 메서드 내에서 값을 올바르게 할당하기 위해서는, 전달받은 매개변수 posYposX를 정확히 인스턴스 변수 PosY, PosX에 할당해야 합니다. 이를 위해 변수 할당 시 this 키워드를 사용하거나 매개변수 이름과 인스턴스 변수 이름을 다르게 설정해주는 것이 좋습니다. 수정된 코드를 예시로 보여드린 부분 처럼 변경하시면 문제가 해결됩니다.

관련해서 유사한 질문이 있었고 해결책이 제시된 다른 게시물을 참조하실 수 있습니다:
- BFS함수의 두 번째 while문 조건에 대하여

여기서 지식공유자께서 while 루프 내의 참조 상태 문제를 다루셨으며, != 연산자에 대한 참조 비교 문제에 대해 자세히 설명해주셨습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

게임개발에서 주로 어느부분에 알고리즘들이 쓰이는지 궁금합니다

0

172

2

글꼴 바꿔도 자간이 좁아 찌그러져보이시는 분들

0

88

1

parent를 Pos타입으로 만든 이유

0

74

1

콘솔창에 격자가 안나옴 미로 생성 X

0

133

1

격자 생성 안됨 무한루프

0

114

1

BFS 질문

0

143

2

격자 무한 출력

0

167

2

A* 의 PriorityQueue 관련 질문입니다

0

156

2

vscode에서 원그리기

0

180

1

환결설정 강의 원 그리기

0

122

1

15-17분

0

87

1

3:16초에 근데 이렇게 해가지고 부분에 "{}"를 만들어서 자식 node들을 생성하던데 왜 중괄호로 감싸게 만드는 건가요?

0

141

2

동적 배열 관련 질문입니다!

0

209

1

Big-o 표기법에서 시간 복잡도

0

167

1

7:40에서 언급하신 색상이 날아가는 문제 이해를 못하겠습니다

0

151

1

트리구현연습 강의 질문있어요

0

143

1

창은 뜨는데 맵이 나타나지 않아요.

0

175

1

Ctrl F5 하면 나오는 창은 어디서 설정할까요??

0

271

1

void CalcPathFromParent(Pos[,] parent)에 대해서

0

202

2

NullReferenceException예외가 발생했을때 어떻게 해야하나요?

0

229

1

[해결] 환경설정 강의에서 원이 이상하게 그려지는 문제

3

311

2

오른손 법칙에서 플레이어 점이 안 움직입니다

0

245

2

맵 만들기 오류

0

179

1

맵 만들기 부분 오류

0

236

1