별도의 배치 없이 자동으로 게임내에 생성되는 시스템.
주요 시스템 종류
EngineSubsystem - 엔진 시작/종료
EditorSubsystem - 에디터 시작/종료
GameInstanceSubsystem - 게임 시작 / 종료
WorldSubSystem - 레벨 시작 / 종료
LocalplayerSystem - 플레이어 접속/종료(멀티플레이어)
라이프사이클 핵심 함수
초기화(시작)
virtual void Initialize(FSubsystemCollectionBase& Collection) override;
초기화가 선행되어야 하는 서브시스템이 있다면 Collection 을 통해 우선 초기화를 관리할수있다.
예를들어, 날씨 시스템이 시간 시스템을 선행으로 한다면, 날씨시스템 초기화에서 시간 시스템의 초기화를 호출하도록 할 수 있다.
초기화 해제(종료)
virtual void Deinitialize() override;
서브시스템의 적용 여부를 결정하는 함수(특정 맵에서, 서버/로컬에서, 등)
virtual bool ShouldCreateSubsystem(UObject* Outer) const
Outer는 외부 객체로 이를통해 월드나 레벨을 불러와 이 서브시스템을 로드할것인지를 결정해 bool로 반환한다.
예시, 레벨이 StarterMap일때만 로드되는 시스템

'개발 > 언리얼' 카테고리의 다른 글
| 언리얼 모듈 추가하기 (0) | 2026.06.24 |
|---|---|
| 언리얼 모듈과 플러그인? (0) | 2026.06.24 |
| UAnimNotifyState_TimedNiagaraEffect, 트레일(궤적) 이펙트 에셋 적용 (0) | 2026.05.12 |
| 언리얼 AnimInstance로 AnimNotify사용 과정 기록 (0) | 2026.05.06 |
| 언리얼 캐릭터 무기 위치 조정 및 부착(Skeleton, Socket) (0) | 2026.05.04 |