Files
ShrinkDataSaver/Runtime/ShrinkDataSaverSettings.cs
T
cneicy ec87b0bde3
Publish UPM package / publish (push) Successful in 2s
chore(editor): unify data saver settings menu
2026-08-26 12:48:31 +08:00

62 lines
2.1 KiB
C#

using UnityEngine;
namespace ShrinkDataSaver
{
[CreateAssetMenu(fileName = "ShrinkDataSaverSettings", menuName = "ShrinkSDK/存档/存档设置")]
public class ShrinkDataSaverSettings : ScriptableObject
{
private static ShrinkDataSaverSettings _instance;
public static ShrinkDataSaverSettings Instance
{
get
{
if (_instance) return _instance;
_instance = Resources.Load<ShrinkDataSaverSettings>("ShrinkDataSaverSettings");
#if UNITY_EDITOR
if (!_instance)
{
var guids = UnityEditor.AssetDatabase.FindAssets("t:ShrinkDataSaverSettings");
if (guids.Length > 0)
{
var path = UnityEditor.AssetDatabase.GUIDToAssetPath(guids[0]);
_instance = UnityEditor.AssetDatabase.LoadAssetAtPath<ShrinkDataSaverSettings>(path);
}
}
#endif
if (!_instance)
{
_instance = CreateInstance<ShrinkDataSaverSettings>();
Debug.LogWarning(
"[ShrinkDataSaver] 未找到 ShrinkDataSaverSettings 配置文件!当前使用默认配置。\n" +
"请通过菜单 Assets → Create → ShrinkDataSaver → Settings 创建配置文件,\n" +
"可放置在项目任意目录下(编辑器会自动搜索),或在 ShrinkDataSaverBootstrap 组件上手动指定。");
}
return _instance;
}
internal set => _instance = value;
}
[Header("Storage")]
public string customSavePath = "";
[Header("Settings File")]
public string settingsFileName = "settings.json";
public bool syncSettingsToCloud; //todo
[Header("Save Slots")]
public int maxSlots;
public string saveFileExtension = ".sav";
[Header("Screenshot")]
public int screenshotMaxWidth = 256;
[Header("Settings Debounce")]
public float settingsWriteDebounceSeconds = 0.3f;
}
}