[UE 5] 2D 게임 개발 11 - 타일맵 좌표 구하기

0시0분·2025년 3월 4일
0

UE 5

목록 보기
33/52

PaperTileMapActor

각 타일의 정보를 가져오거나 하는 등 더 심화적인 과정을 필요로 할때 사용한다.
만들어둔 타일맵을 가져다 쓸 수 있음.

타일맵 넓이 가져오는 방법

타일맵의 크기는 10x10 크기이다.

타일맵 레이어 정보 저장

bool형 1차원 배열을 사용해서 갈수 없는 타일이면 (=Layer 0 이면) true 값 저장

2차원이 아닌 1차원 배열을 사용했기 때문에 좌표 변환 필요함!

디버깅 해서 확인해보면 값이 잘 들어가있는걸 확인할 수 있다.

이동할수 있는 좌표인가? (Can Go)

해당 좌표값이 유효한지 검사하고 배열의 값이 true가 아니면 (=벽이 아니면) 갈수 있음.

타일맵 위의 좌표가 배열의 몇번째에 위치해 있는지 (GridPos To Idx)

타일맵 좌표가 위에서 구한 Map Grid 배열의 몇번째 원소인지 알아내는 함수

타일맵 위의 좌표를 월드좌표로 전환 (Get Tile Pos)

유니티에서는 CellToWorld였나.. 함수가 따로 있었던 것 같은데 일부러 언리얼 내장함수를 쓰지 않은건지
강의에서는 직접 좌표를 계산하는 방식으로 구현했다. 맵이 10x10으로 단순해서 그랬을것 같긴 하다

타일사이즈(Map Size X, Y)는 32x32 크기이다.
캐릭터 사이즈에 맞게 스케일을 5배로 늘렸기 때문에 5와 -5를 각각 곱해줬다.


체크하면 함수가 흐름제어에 포함되지 않고 순수하게 값만을 리턴하는 함수로 변경된다.
외부의 값을 변경하거나 가공하지 않고 위와 같이 순수하게 조합후 새로운 값을 리턴하는 경우에 사용한다.


테스트

캐릭터 클래스에서 임시로 좌표를 지정해서 스폰시키는 코드를 넣어봤다.

유니티에서 transform.Find 하듯이 Get Actor of Class를 사용해서 타일맵을 가져와 사용했다.
(4, 5) 좌표에 생성되도록 지정하면

정확히 해당 좌표에 생성된 것을 알 수 있다.

0개의 댓글