Unreal Engine/[Inflearn_rookiss] UE5 Lyra 분석

14. Teleport 시 DefaultPawn 설정

헛둘이 2024. 10. 30. 17:06

일전에 업로드한 13-1, 13-2는 처음 Default Map에서 ShooterGym 맵으로 가는 텔레포트를 구현하기 위한 일련의 과정에서 발생한 에피소드였습니다.

https://dev-treadmill.tistory.com/320

 

13-1. 에셋이 불러와지지 않는 버그

현재 ShooterCore를 제작하는 과정 중에 저의 두 번째 맵인 GameFeatures/ShooterCore/Maps의 L_ShooterGym을 불러오려 하니, 목록에 나오지 않아 이유를 찾게 되었습니다. - 플러그인에서 상대경로를 통해 탐색

dev-treadmill.tistory.com

https://dev-treadmill.tistory.com/321

 

13-2. 에셋을 불러올 때 신경써야 하는 부분

이전 포스팅과 마찬가지로 에셋을 세팅해야 하는데 아무리 해도 에셋 매니저에서 스캔되지 않아 뭐가 문제인지 헤멨습니다....;; 원인은 직접 상속을 받는 Blueprint class와 Data asset을 통해 상속받

dev-treadmill.tistory.com

진도가 빠르게 나가지 않은 이유는 버그를 잡기 위한 시행착오에서 비롯되었다고 생각해주시면 감사하겠습니다.

 

오늘 공부 과정에서도 블루프린트의 내용을 수정하고, 노드가 잘못 연결된 부분을 수정해주는 시행착오가 있었습니다만,

오랜 시간 헤메지 않고 잘 넘어왔습니다.

 

그 후 발생한 문제는 L_ShooterGym으로 이동 시 DefaultPawn이 변경되지 않는 문제를 확인했습니다.

왜 변경되지 않는 것인가??? 확인해보니

ExperienceId를 설정하는 부분에서 Pawn을 DefaultPawn으로 고정시켜 둔 것이 문제였습니다.

나중에 확인해보니 이 부분은 다음 강의에서 배울 내용이라 아직 코드가 추가되지 않은 부분이었습니다.

 

함수 위 아래로 있는 PRAGMA_DISABLE or ENABLE_OPTIMIZATION은 해당 구간의 코드를 최적화하지 않게끔 하는 매크로인데요,

저렇게 구역을 설정함으로써 마치 디버그 모드에서 디버그하는 듯한 효과를 얻을 수 있습니다.

 

저 부분은 이전에 CommonUser 모듈에서 맵 간 트랜지션을 구현할 때 GetWorld()->ServerTravel(URL) 함수로 넘겨준 URL을 통해 어떤 Pawn을 사용할 지 분기 처리를 진행할 수 있습니다.

 

위에서 언급한 HandleMatchAssignmentIfNotExceptingOne 함수는 여기서 넘어온 URL을 파싱하여 어떤 Pawn을 사용할 지 결정하게 됩니다.

 OptionsString을 이용하여 파싱하고, FPrimaryAssetType의 두 번째 인자로 사용할 Pawn을 전달해줌으로써 L_ShooterGym에서 어떤 Pawn을 사용할 지 결정해주게 됩니다.

여기서 OptionsStringGameModeBase가 가진 멤버변수입니다.

 

현재는 이 Pawn이 결정되지 않아서 L_ShooterGym으로 이동할 경우 아무 것도 화면에 뜨지 않는 상태가 되는데,

이 부분은 차차 구현해나갈 예정입니다.