영구 데이터
OBS는 플러그인 전용 키/값 저장소를 제공합니다. 이를 사용하면 별도의 설정 파일을 프로젝트와 함께 배포하지 않고도 스트림별 또는 프로필별 소규모 상태 정보를 기억할 수 있습니다. 값은 OBS 재시작 후에도 유지됩니다.
이 함수들은 GetClient()->GetConfig()를 통해 접근합니다.
함수
| 함수 | 설명 |
|---|---|
GetPersistentData(Realm, SlotName) | 슬롯을 비동기로 가져오며, OnPersistentDataReceived를 발생시킵니다. 결과는 캐시에도 저장됩니다. |
SetPersistentData(Realm, SlotName, SlotValueJson) | JSON 값을 저장합니다 (JSON이 유효하지 않으면 false를 반환하며, 빈 값을 전달하면 슬롯이 초기화됩니다). |
SetPersistentDataString(Realm, SlotName, Value) | 일반 문자열 값을 저장합니다. |
GetCachedPersistentData(Realm, SlotName) | 로컬 캐시에서 이전에 가져온 슬롯 값을 읽습니다. |
Realm
Realm은 EOBSDataRealm 타입입니다.
| 값 | 범위 |
|---|---|
EOBSDataRealm::Global | 모든 OBS 프로필에 걸쳐 유지됩니다. |
EOBSDataRealm::Profile | 현재 프로필에만 적용됩니다. |
예제
UInhyeongOBSConfig* Config = Subsystem->GetClient()->GetConfig();
// Store a plain string in the global realm.
Config->SetPersistentDataString(
EOBSDataRealm::Global, TEXT("LastSceneTheme"), TEXT("Cozy"));
// Fetch it back later (async, handle in OnPersistentDataReceived).
Config->GetPersistentData(EOBSDataRealm::Global, TEXT("LastSceneTheme"));
// Or read the cached value directly after a prior fetch.
FString Cached =
Config->GetCachedPersistentData(EOBSDataRealm::Global, TEXT("LastSceneTheme"));
참고:
SetPersistentData는 전달된 JSON이 유효하지 않을 경우false를 반환합니다(이 경우 아무것도 전송되지 않습니다). 빈 값을 전달하면 슬롯이 초기화됩니다.