UGameInstanceSubsystem
#include "Kismet/GameplayStatics.h"
...
if (UGameInstance* gameInstance = UGameplayStatics::GetGameInstance(this))
{
if (UDebugInfoSubsystem* subsystem = gameInstance->GetSubsystem<UDebugInfoSubsystem>())
{
// 사용
}
}
- UGameInstance와 동일한 생명주기로 자동으로 생성되고 파괴되어 따로 관리해 줄 필요가 없다.
- 싱글톤처럼 하나의 인스턴스가 필요한 경우나 필요한 기능별로 로직을 관리하기에 좋음.
static변수나 싱글톤을 사용하는 경우 에디터에서 여러개의 클라이언트 실행시
모두 하나의 객체를 바라보게 되어 정보가 오염될수 있기 때문에
UGameInstance의 멤버 변수로 선언해서 사용하거나, UGameInstanceSubsystem을 사용하는 것이 좋다.
공통 인터페이스
// 초기화
virtual void Initialize(FSubsystemCollectionBase& Collection) override;
// 해제
virtual void Deinitialize() override;
UEditorSubsystem
필요 모듈 : "EditorSubsystem"
'Unreal' 카테고리의 다른 글
[Unreal] Core Redirect - 데이터 테이블 필드명 수정 (0) | 2023.01.31 |
---|---|
[Unreal] 객체 획득 (0) | 2023.01.31 |
[Unreal] TScriptInterface Garbage Collection 테스트 (0) | 2023.01.27 |
[Unreal] 치트 사용 (0) | 2023.01.27 |
[Unreal] 스크린 로그 출력 (0) | 2023.01.27 |