ギャラリーの解放情報は、システムセーブデータに記録されているので
Engine.SystemSaveData.GalleryDataを使用します。
以下、サンプルコードです。
using UnityEngine;
using Utage;
using UtageExtensions;
using System.Collections.Generic;
public class Sample : MonoBehaviour
{
/// <summary>ADVエンジン</summary>
public AdvEngine Engine => this.GetAdvEngineCacheFindIfMissing(ref engine );
[SerializeField]
protected AdvEngine engine;
//指定のラベルのシーンギャラリーが解放されているかチェック
public bool ISceneGalleryOpened(string label)
{
AdvGallerySaveData save = Engine.SystemSaveData.GalleryData;
return save.CheckSceneLabels(label);
}
//指定のラベルのCGギャラリーが解放れているかチェック
public bool IsCgGalleryOpened(string label)
{
AdvGallerySaveData save = Engine.SystemSaveData.GalleryData;
return save.CheckCgLabel(label);
}
//シーンギャラリーが全部解放されているかチェック
public bool IsAllSceneGalleryOpen()
{
AdvGallerySaveData save = Engine.SystemSaveData.GalleryData;
List<AdvSceneGallerySettingData> list = Engine.DataManager.SettingDataManager.SceneGallerySetting.List;
foreach (AdvSceneGallerySettingData item in list)
{
if (!save.CheckSceneLabels(item.ScenarioLabel)) return false;
}
return true;
}
//CGギャラリーが全部解放されているかチェック
public bool IsAllCgGalleryOpen()
{
AdvGallerySaveData save = Engine.SystemSaveData.GalleryData;
List<AdvTextureSettingData> list = Engine.DataManager.SettingDataManager.TextureSetting.List;
foreach (AdvTextureSettingData item in list)
{
if (item.TextureType != AdvTextureSettingData.Type.Event) continue;
if (string.IsNullOrEmpty(item.ThumbnailPath)) continue;
if (!save.CheckCgLabel(item.Key)) return false;
}
return true;
}
}
類似のコードとして、 ギャラリーを強制解放するためのコンポーネントが下記にあるのでそちらも参考にしてみてください。
Assets/Utage/Scripts/ADV/Extra/AdvOpenGallery.cs
2026年1月9日金曜日 16:43:41 UTC+9 桃山マサル: