언어:
페이지 정보

5. 레벨 완료 스크립트

웨이브의 모든 로봇이 리콜되어 레벨이 완료되면, 플레이어가 허브로 돌아가 게임의 정상적인 흐름을 계속 따라가도록 하고 싶을 것입니다.

  1. 레벨 에디터 툴바에서 블루프린트 버튼을 클릭한 뒤 레벨 블루프린트 열기 를 선택하여 블루프린트 에디터에서 현재 레벨에 대한 스크립트를 엽니다.

    level_blueprint.png

  2. 레벨 에디터 뷰포트에서 기존에 배치한 Odin AI Wave Manager 액터를 선택합니다. 블루프린트 에디터로 돌아와 이벤트 그래프에 우클릭한 다음 Add On Wave Completed 를 선택합니다.

    wave_complete.png

  3. 실행 출력 핀을 끌어 놓고 Delay 를 선택합니다. Duration5.0 로 설정합니다. 그러면 레벨이 완료되고 플레이어가 허브로 되돌아가기 전까지 잠깐 틈이 생깁니다.

    delay.png

  4. 이벤트 그래프에 우클릭하고 Get Game Mode 를 선택하여 현재 Game Mode 인스턴스로의 레퍼런스를 구합니다. Return Value 핀을 끌어 놓고 Cast to BP_OdinGameMode (BP_OdinGameMode 에 형변환)을 선택합니다. Delay 이벤트의 실행 출력을 BP_OdinGameMode 에 형변환 노드의 실행 입력에 연결합니다.

    game_mode.png

  5. As BP Odin Game Mode 핀을 끌어 놓고 Bind Event to onBeginLoadingSequenceDone 를 선택합니다. event 입력을 끌어 놓고 Custom Event 추가 를 선택합니다. 이벤트 이름을 ReturnToHub 라 합니다.

    loading_event.png

  6. 실행 출력을 끌어 놓고 Begin Loading Sequence 를 선택하여 로드 화면을 시작합니다. Target 입력을 형변환 노드의 As BP Odin Game Mode 출력에 연결합니다.

    begin_loading.png

  7. 형변환 노드의 As BP Odin Game Mode 출력을 끌어 놓고 Get Main Pawn 를 선택하여 플레이어로의 레퍼런스를 구합니다. Main Pawn 을 끌어 놓고ㅓ Get Controller 를 선택하여 플레이어의 컨트롤러에 대한 레퍼런스를 구합니다. Return Value 를 끌어 놓고 Player Controller 에 형변환 을 선택하여 사람이 조종하는 플레이어의 컨트롤러임을 확인합니다. 콘솔 명령 실행에 필수이기 때문입니다.

    controller.png

  8. ReturnToHub 이벤트의 실행 출력을 끌어 놓고 execute Console Command 를 선택합니다. Command 프로퍼티에 open hub_env 을 입력합니다. 그러면 Hub 레벨을 여는 명령을 전송합니다. Specific Player 입력을 형변환 노드의 As Player Controller 출력에 연결합니다.

    Copy Node Graph

    console_command.png

    이 이미지 좌상단 구석의 아이콘을 클릭하여 블루프린트 그래프를 복사한 뒤 프로젝트에 붙여넣습니다.

결과

웨이브가 완료되면 로드 시퀀스가 시작되며 플레이어가 Hub 로 이동됩니다.

fade.png