본문 바로가기
언리얼_엔진_게임개발_공부/언리얼 블루프린트

[언리얼/블루프린트] 레벨 스트리밍 - 레벨을 로드 load & 언로드 unload 하기

by jaboy 2025. 1. 9.

언리얼 엔진으로 레벨을 구성할 때 Persistent / Streaming 레벨로 나누면,

커다란 월드를 부분으로 나누어 플레이타임에 다른 레벨을 메모리에 로드/언로드할 수 있고, 렌더링 또한 토글할 수 있다.

Persistent 는 말그대로 기본이 되는 '마스터' 레벨로 항상 작동하고 있는 요소들로 이루어진다.

Streaming 은 로드 / 언로드할 수 있는 레벨인데, 퍼시스턴트 레벨을 레이어화하기 위해 사용되기도 한다.

 

레벨의 로드/언로드는 "게임 모드" 블루프린트에서 호출되는 것이 안정적이다.

 

프로젝트 세팅에서 디폴트 게임모드를 생성한 게임모드 블루프린트로 설정할 수 있다.

더불어 그 아래쪽에 보면 디폴트 맵도 제작한 퍼시스턴트 레벨로 설정하고 있는 것을 알 수 있다.

 

위의 예시와 같이 Load Level Instance By (Name 또는 Object) 로 레벨을 로드하는 함수를 만들 수 있고, 이는 앞서 말했듯이 게임 모드 블루프린트에서 실행되는 것이 안정적이다.

 

위 예시에서는 스테이지 번호를 입력받아 레벨 이름 끝에 붙여 해당하는 이름의 레벨을 찾아 로드한다.

제작한 레벨은 위의 함수에서 호출될 수 있도록 이름 끝에 스테이지 번호를 붙여줬다.

 

위와 같이 언로드하는 함수도 게임모드 블루프린트 내에 만들어서 플레이 상황에 따라(i.e. 현재 스테이지 종료 시) 언로드 함수가 호출되도록 한다.

 

로드/언로드가 필요한 곳에서 위의 예시처럼 게임모드를 가져와 언로드와 로드를 실행시킬 수 있다.