inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

Search AI

A* 구현 중 Cell2Pos, Pos2Cell의 추가 설명이 필요합니다.

341

hkjin97

작성한 질문수 10

0

오브젝트의 CellPos와 맵 전체를 스캔한 collision 배열의 Index를  서로 동기화시켜주기 위해서 만든 것으로 이해하고 있는데 이게 맞는지 궁금합니다.

 

그리고 x값은 cellPos.x - MinX 인데

y값은 왜  MaxY - cellPos.y 로 정의되는지도 잘 모르겠습니다.

 

unity C#

답변 1

0

Rookiss

음~ 괜히 저렇게 만들어서 많은 분들의 혼란을 야기한 것 같네요.

크게 중요한 부분은 아니고 좌표 기준이 달라서 그런데요.
유니티에서는 x, y 좌표가
x는 오른쪽으로 증가, 왼쪽으로 감소이고
y는  위로 증가, 아래로 감소입니다.

그런데 cell을 만들 때 x는 동일하지만 y는 아래로 증가, 위로 감소가 되게 만들었으니
계산법이 저렇게 된 것 뿐입니다.
툴을 만들 때 유니티 축 방향대로 y를 만들면 저런 복잡한 계산이 사라집니다.

나중에 개인 프로젝트 작업할 땐 저도 헷갈려서 고쳐 쓴 기억이 있네요.

1

hkjin97

MapEditor를 따라 칠 때 생각없이 따라쳤나봅니다.

찾아서 제가 이해하기 쉽도록 수정했습니다. 

텍스트 파일은 당연히 거꾸로 찍히지만 제가 생각한대로 잘 작동하네요..

답변 감사합니다^^

 

혹시나 비슷한 문제로 고민하고 계신 분들이 있을까 수정 내역 첨부합니다.

// MapEditor.cs

GenerateMap()

수정 전 -> for (int y = tmBase.cellBounds.yMax; y >= tmBase.cellBounds.yMin; y--)

수정 후 -> for (int y = tmBase.cellBounds.yMin; y <=  tmBase.cellBounds.yMax; y++)

 

// MapManager.cs

CanGo()
수정 전 -> int y = MaxY - cellPos.y;

수정 후 -> int y = cellPos.y - MinY;

 

Cell2Pos()

수정 전 -> return new Pos(MaxY - cell.y, cell.x - MinX);

수정 후 ->  return new Pos(cell.y - MinY, cell.x - MinX);

 

Pos2Cell()

수정 전 -> return new Vector3Int(pos.X + MinX, MaxY - pos.Y, 0);

수정 후 -> return new Vector3Int(pos.X + MinX, pos.Y + MinY, 0);

 

Lessons 3 & 4 don't have subtitles unfortunately

0

39

1

MessagePack

0

105

1

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

0

69

1

Part7 Part9 질문이 있습니다.

0

89

1

.

0

131

1

.

-1

119

2

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

0

103

1

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

0

149

2

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

0

95

2

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

0

96

2

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

0

166

2

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

0

291

2

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

0

227

3

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

0

164

2

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

0

168

2

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

0

343

4

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

1

204

2

맵 이동 방식

0

144

0

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

0

97

1

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

0

223

2

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

0

173

1

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

0

469

1

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

1

210

1

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

0

343

2