API
Interface
public interface ISaveDataPlugin
{
// Type registration
void RegisterSaveDataType<T>();
// Data access
T GetSaveData<T>(string key = null);
void SetSaveData<T>(T data, string key = null);
bool HasSaveData<T>(string key = null);
string[] GetRegisteredTypeNames();
// Persistence
Task<bool> SaveAsync();
Task<bool> LoadAsync();
void ClearAllData();
// Storage providers
void RegisterStorageProvider(ISaveDataProvider provider);
void SetActiveStorageProvider(string providerId);
// Slot management
SaveSlotManager GetSlotManager();
Task<SaveSlotMetadata> CreateNewSlot(string displayName);
Task<bool> LoadSlot(string slotId);
Task<bool> DeleteSlot(string slotId);
Task<List<SaveSlotMetadata>> GetAllSlots();
Task<SaveSlotMetadata> GetCurrentSlotMetadata();
Task<bool> SaveAndUpdateMetadata();
// Version management
Task<SaveVersionMetadata> CreateManualVersion(string displayName,
long totalPlaytimeSeconds);
Task<List<SaveVersionMetadata>> GetAllVersions();
Task<bool> LoadVersion(string versionId);
Task<bool> DeleteVersion(string versionId);
bool IsLoadingVersion();
}SaveDataEntry
Field
Type
Description
SaveSlotMetadata
Field
Type
Description
SaveVersionMetadata
Field
Type
Description
SaveDataContainer
Field
Type
Description
Commands
Command
Description
Storage Providers
Provider
Description
Usage
Creating Custom Save Data
Last updated
Was this helpful?
