inflearn logo
강의

Khóa học

Chia sẻ kiến thức

[Series phát triển game MMORPG bằng C# và Unity] Part7: Triển khai nội dung MMO (Cơ bản về liên kết Unity + Server C#)

Tìm kiếm AI

System.ArrayTypeMismatchException:

467

BBAKK

35 câu hỏi đã được viết

0

Map.cs   ->   ApplyMove 및 ApplyLeave 함수 부분에서 오류가 간헐적으로 발생합니다.

public bool ApplyMove(GameObject gameObject, Vector2Int dest)

      {

         ApplyLeave(gameObject);

         PositionInfo posInfo = gameObject.PosInfo;

         if (CanGo(dest, true) == false)

            return false;

         {

            int x = dest.x - MinX;

            int y = MaxY - dest.y;

            _objects[y, x] = gameObject;     // 이 부분에서 오류 발생 함

         }

         // 실제 좌표 이동

         posInfo.PosX = dest.x;

         posInfo.PosY = dest.y;

         return true;

      }

System.ArrayTypeMismatchException: 'Attempted to access an element as a type incompatible with the array.'

이라는 오류가 발생합니다....

첨부파일에 있는 프로젝트 실행해도 마찬가지입니다

.NET Core 3.1 

Protobuf( 3.12.3)

Newtonsoft.Json (12.0.)

입니다

C# unity

Câu trả lời 2

0

dbstn07099662

혹시나 동일 문제 일어나는 분들을 위해 답글 남겨둡니다

다형성 문제인듯 하고.. Map.LoadMap()에서

_objects 배열이 Player[,]배열로 초기화 됩니다.

이후 GameRoom.EnterGame()에서 Map.ApplyMove를 호출 할때 Player 타입이 아닌 Monster 혹은 Projectile 타입으로 사입하려고 시도해서 배열 타입 불일치로 에러가 나는것같습니다

Map.LoadMap()에서

_objects = new Player[yCount, xCount]; 하는 부분을

_objects = new GameObject[yCount, xCount]; 로 수정하면 정상 작동됩니다

 

0

Rookiss

안녕하세요,
제 환경에서는 발생하지 않고 있고,
해당 기반 프레임워크로 진행중인 프로젝트에서도 발생한 적이 없어서
말씀주신 단서로만은 찾기가 힘듭니다.

보내주신 에러를 보니 배열에 안 맞는 물체를 넣을 때 발생하는 오류인데
GameObject이 아닌 다른 객체를 넣을 때 발생하는 것으로 보이며,
Monster -> GameObject, Player -> GameObject, Arrow -> Projectile -> GameObject
을 상속받고 있는 것이 맞는지 확인 부탁 드립니다.

크래시가 일어나고 있는 이유는 명확하니 해당 부분에서 객체 타입을 살펴보면 될 것 같네요.

MessagePack

0

84

1

본인 플레이어 이동 관련 질문

0

49

1

Part7 Part9 질문이 있습니다.

0

72

1

.

0

116

1

.

0

105

2

게임 로직 루프에서 게임 틱 누락으로 인한 높은 CPU 사용 문제

0

91

1

타일 팔레트 깔았는데도 안돼요

0

115

2

2D로 그냥 만들어도 되나요?

0

81

2

지난 강의와 이어지는게 맞을까요?

0

80

2

순환참조 문제로 인해 발생하는 문제는 없을까요?

0

162

2

유니티 클라와 C++서버연동

0

277

2

멀티플레이 테스트 환경 관련 질문입니다

0

207

3

강의 후반부에 순서 동기화를 위해 잡큐를 사용 안 한 부분 질문입니다!

0

150

2

코드 관련한 몇 가지 질문입니다!

0

153

2

3d 프로젝트 이동 동기화 관련

0

321

4

파트 7 스트레스 테스트 질문 드립니다.

1

189

2

맵 이동 방식

0

133

0

맵 이동 관련해서 질문드립니다.

0

91

1

안녕하세요 도저히 알 수 없는 오류가 나와서 질문드려요,,

0

201

2

안녕하세요. 일전에 질문 드린 포폴 준비 관련 질문의 추가 질문입니다!

0

159

1

[팁] 2024년 기준 버전 이슈?

0

453

1

SendBuffer.cs 삭제 후 대체 되는 부분의 장단점?

1

200

1

지금 강의의 유니티 클라를 IOCP 서버와 연동하는 것

0

334

2

PushAfter 사용 질문

0

190

1