728x90
[UGameInstance] // 게임 전체에서 단 하나, 앱 실행~종료까지 유지
│
└─[UWorld] // 맵(레벨) 단위로 존재, 맵이 바뀌면 새로 생성
│
├─[AGameModeBase / AGameMode] // 서버(Authority)에서만 존재, 게임 규칙/진행 관리
│ │
│ └─[AGameStateBase / AGameState] // 서버/클라이언트 모두에 존재, 게임 상태 동기화
│ │
│ └─[APlayerState] // 각 플레이어별로 존재, 점수/팀/닉네임 등 상태 동기화
│
└─[APlayerController] // 각 플레이어별로 존재, 입력/카메라/조작 담당
│
├─[APlayerState] // PlayerController가 소유(참조)함 (상속X, 소유/참조 관계)
│
└─[APawn / ACharacter] // 실제 월드에서 움직이는 캐릭터/오브젝트, PlayerController가 소유(조작)
각 클래스의 역할 및 관계
• UGameInstance
• 게임 전체에서 단 하나만 존재 (앱 실행~종료까지)
• 레벨이 바뀌어도 유지됨
• 글로벌 매니저, 네트워크, 로그인 등 전역 데이터 관리
• UWorld
• 하나의 맵(레벨) 단위로 존재
• 맵이 바뀌면 새로 생성됨
• AGameModeBase / AGameMode
• 서버(Authority)에서만 존재
• 게임 규칙, 승패, 플레이어 입장/퇴장, 매치 흐름 등 관리
• 한 맵에 하나만 존재
• AGameStateBase / AGameState
• 서버/클라이언트 모두에 존재
• 게임의 현재 상태(점수, 남은 시간 등)를 동기화
• 한 맵에 하나만 존재
• APlayerController
• 각 플레이어(로컬/원격)마다 하나씩 존재
• 입력 처리, 카메라, UI, Pawn 조작 등 담당
• 서버/클라이언트 모두에 존재
• PlayerState를 소유(참조)함
(상속 관계가 아니라, 멤버 변수로 참조)
• APlayerState
• 각 플레이어마다 하나씩 존재
• 점수, 팀, 닉네임 등 플레이어 상태 동기화
• 서버/클라이언트 모두에 존재
• PlayerController와 1:1로 연결
(PlayerController가 PlayerState를 참조)
• APawn / ACharacter
• 실제 월드에서 움직이는 캐릭터/오브젝트
• PlayerController가 소유(조작)함
728x90
'Unreal' 카테고리의 다른 글
| CommonLoadingScreen 분석 및 정리 (0) | 2026.08.20 |
|---|---|
| 플레이어 컨트롤러의 입력 키 복구 작업중 발생한 문제 정리. (0) | 2026.08.09 |
| 언리얼 TArray, Delegate 소소한 팁 정리 (0) | 2026.08.09 |
| (브러시 모드) 펜툴을 이용한 지오메트리 생성시 충돌 주의점 (0) | 2024.12.10 |
| 언리얼 리플렉션 TFieldIterator (0) | 2024.06.22 |


