永続データ
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を返します(その場合、何も送信されません)。空の値を渡すとスロットがクリアされます。