관리 메뉴

caLAB

[언리얼 엔진] Persistent Level로 씬 전환하기 본문

언리얼 엔진/언리얼 엔진 블루프린트

[언리얼 엔진] Persistent Level로 씬 전환하기

도이(doi) 2021. 9. 16. 00:26
728x90

언리얼 엔진에는 항상 하나의 Persistent Level (지속 레벨, 퍼시스턴트 레벨)이 있으며, 항상 로드되거나 레벨 스트리밍 볼륨, 블루프린트, C++ 코드를 통해 스트림 인 가능한 서브 레벨 하나 이상으로 구성됩니다. 레벨 창에는 이 레벨이 전부 표시되어, (두꺼운 파랑 글씨로 표시된) 현재 레벨 설정을 변경하거나, 하나 이상의 레벨을 저장하거나, 레벨 블루프린트에 접근할 수 있습니다. 현재 레벨은 레벨 에디터 뷰포트에서 변경할 때 실제로 변경되는 레벨입니다. 이를 통해 다수의 맵에 대한 작업을, 전부 쓰기 가능하게 설정된 경우 쉽게 할 수 있습니다.

 

위에 있는게 Persistent Level에 대한 설명이다. 위에 글만 봐서는 처음에 뭔 소린가 했다. 하지만, 인간은 자기가 필요하면 방법을 찾는다고... Persistent Level은 관리 레벨로 계속 존재하고 있는 레벨이라고 생각하면 된다. 이게 언제 필요하냐면 여러 레벨들을 껐다 켰다할 때 필요하다. Persistent Level이 없다면 모든 레벨에 다른 레벨로 가는 기능을 일일히 구현해야 되는데 레벨을 관리하는 것을 Persistent Level의 블루프린트에 구현하면 깔끔하다.

 

Persistent Level이 관리하는 레벨은 Sub Level이라고 부른다. 

sub level 추가하기

sub level은 Window > Levels 창을 가져와서 큰 Levels 버튼을 눌러서 만약 추가하려는 sub level이 만들어져있다면 add existing을 하면 된다. 

open level blueprint

게임기 모양 아이콘을 누르면 각 레벨의 level blue print를 활성화시킬 수 있다.

persistent level을 눌러서 아래와 같은 노드를 작성해줬다.

 

아래 노드는 숫자 입력을 받았을 때 생성된 level로 전환해주는 것이다. 

이전 level은 꺼주고 새로운 level을 켜줘야 되기 때문에 previous level 변수를 만들어서 previous level은 Unload Stream Level 함수로 꺼주고 Load Stream Level에서는 선택한 Level을 활성화 시켜준다.

persistent level blueprint

 

* 변수 추가하는 방법

좌측의 창에 Variables를 추가한 후에, 우측에 있는 창에서 변수에 대한 설정을 해준다. 

우리는 level의 이름에 대한 변수를 만들어야 됐기 때문에 Variable Type을 String으로 지정해주었다.

변수 추가

728x90
반응형
Comments