
📍BP_GameMode




게임 모드 설정 & 실행 흐름 정리
1️⃣ 맵 설정
| 항목 | 설명 |
|---|---|
| 에디터 시작 맵 (Editor Startup Map) | 언리얼 에디터를 열었을 때 처음 열리는 맵 작업용 임시 맵 설정에 사용 |
| 게임 기본 맵 (Game Default Map) | 게임을 실제로 실행(Play 또는 패키징)했을 때 처음 로딩되는 맵 |
| 설정 위치 | Edit > Project Settings > Maps & Modes→ 각각 맵 지정 가능 |
2️⃣ 디폴트 폰 자동 생성
레벨에 직접 설치하지 않아도 게임 모드에서 설정된 Default Pawn Class(예: 르탄이)가 게임 시작 시 자동 생성됨
3️⃣ 게임 규칙에 따라 어디서든 실행 가능
게임 모드에 정의된 규칙(예: 어떤 캐릭터를 생성할지)을 기반으로 블루프린트 노드에서 호출하면 어디서든 해당 규칙 적용 가능
(예: Get GameMode ➡ 캐스팅 후 기능 실행 등)
🧠 요약
레벨에 캐릭터를 배치하지 않아도 게임 모드의 규칙에 따라 디폴트 폰(르탄이)이 자동 생성됨
해당 규칙은 블루프린트를 통해 어디서든 활용 가능
블루프린트 작성 방법

🌀 개념
| 구분 | 퍼시스턴트 레벨 (Persistent Level) | 스트리밍 레벨 (Streaming Level) |
|---|---|---|
| 역할 | 게임의 기본 뼈대가 되는 메인 레벨 | 퍼시스턴트에 붙는 부속 레벨, 상황에 따라 추가/제거 가능 |
| 로딩 여부 | 항상 로드되어 있음 (언로드 불가) | 필요할 때 로드하거나 언로드 가능 |
| 내용 구성 | 전역 환경: 조명, UI, 게임 모드, 전역 기능 등 포함 | 특정 기능 단위: 캐릭터, 파트 지역, AI 등 포함 |
| 예시 | 게임 메인 씬, 월드의 기본 배경 | 던전 구역, AI 전용 레벨, 임시 이벤트 씬 등 |
📌 레벨 구성 예시
퍼시스턴트 레벨 (Default)
스트리밍 레벨 (Stage1)
🔧 에디터 기본 맵 설정
1. 편집 > 프로젝트 세팅 > 맵 & 모드
2. 아래 항목 설정:
이렇게 하면 에디터 실행 시, 그리고 게임 시작 시 퍼시스턴트 레벨이 항상 로드되며 안정적인 초기 상태 유지 가능
📦 스트리밍 레벨 빌드 포함 설정
1. 편집 > 프로젝트 세팅 > 패키징
2. 패키지된 빌드에 포함시킬 맵 목록에 스트리밍 레벨 추가
(예) /Game/Maps/Stage1
안 넣으면 빌드 후 게임에서 해당 레벨을 불러올 수 없음
AILevel 구성


1️⃣ AILevel 생성
2️⃣ AILevel 구성
3️⃣ 불필요한 요소 제거 이유
4️⃣ 기존 레벨에 로드
🧠 요약
AILevel은 AI 캐릭터만 포함된 서브레벨로, 메인 레벨 위에 로드되어 독립적인 AI 관리에 사용된다
✔ 레벨을 변수에 저장 가능
✔ 언로드를 위한 Level 변수 생성
➡ 스트리밍된 레벨을 변수로 저장해두면 나중에 해당 레벨을 정확히 언로드하거나 제어할 수 있다


📍BP_GameMode > Unload AILevel 함수

Level 변수 : 언로드할 대상 레벨 참조Set Is Requesting Unload and Removal📍BP_OverlapActor (Cube)

Trigger: Event Hit 어떤 물체가 이 액터와 부딪히면 실행
흐름
Get Game Mode ➡ 현재 게임 모드 가져오기Cast To BP_GameMode ➡ 우리가 만든 게임 모드로 캐스팅Load AILevel 함수 호출🧠 무언가와 충돌 시, GameMode의 Load AILevel 함수를 호출하여 AILevel을 스트리밍 로드함
레벨에 큐브 배치하기

충돌 시 AILevel 로드 및 생성 정리
큐브에 부딪힐 때마다 ➡ Event Hit 이벤트 발생
그때마다 Load AILevel 함수 호출
결과적으로 AI 르탄이가 포함된 AILevel이 계속 로드됨
➡ 따라서 충돌 횟수만큼 AI 르탄이가 생성됨