본문 바로가기
UE5 : Paper 2D (Blueprint)/타일맵

[UE5 : Paper2D(BP) - 타일맵] Chapter 04. 타일 좌표 구하기

by song.ift 2024. 1. 15.

GitHub : https://github.com/developeSHG/UE5-Paper2D/commit/23ad85131e8168a25718fd10e7c6bd902704bc85

 

타일 좌표 구하기 · developeSHG/UE5-Paper2D@23ad851

hokyung.song committed Jan 15, 2024

github.com

 

 

 


 

 

현재는 플레이어가 미세하게 움직일 수 있는데, 이것을 고전 로그라이크 게임처럼 타일 한 칸 단위로 움직일 수 있게끔 만들어 볼 것이다.

 

그리드에 x, y의 좌표를 건네주면 갈 수 있는지 여부를 불리언으로 뱉어주는 Can go라는 함수.

Map Grid라는 배열을 기준으로 한 인덱스를 구해준 것이다. 

 

사실상 동일한 데이터를 지금 x, y라는 좌표로도 관리하고 있지만, 1차원 배열을 기준으로 어디에 있는지 인덱스라는 두 번째 정보로도 관리하고 있는데 이것을 계속 왔다갔다 자주 사용할 일이 생길 것 같으니 새로운 함수로 만들어서 편리하게 재사용할 수 있도록 관리.

In Range를 통해 좌표의 범위가 유효한지 체크하고, 2차원 좌표에서 1차원 좌표로 넘어갈 때, 인덱스를 구하는 함수.

 

x, y 라는 좌표가 주어졌을 때, 그에 해당하는 World 좌표를 구해주는 함수.

현재 타일의 x, y에서 타일의 사이즈를 곱한 후, Get Actor Location으로 타겟의 좌표를 가져와 더해준 후 결과물을 뱉어준다.

 

 

플레이어 클래스에서 Get Actor of Class로 Tile Map 블루프린트 클래스를 가져와 Get Tile Pos를 통해 world 좌표를 구해준 다음 Set Location을 통해 좌표를 반영해준다. 

Get Tile Pos를 pure 함수로 만들어줬기 때문에, 내부에서 수정하는 개념이 아니라 있는 정보들을 추출해주는 용도로 연산만 해서 결과만 내뱉어 준다. 세팅할 게 아니라 값만 가져올 경우에 함수를 초록색으로 만드는 것도 방법.

 

댓글