Interface ISaveSystem
데이터 저장/로드/존재 확인/삭제/키 조회 계약.
public interface ISaveSystem
Examples
await _save.SaveAsync("player", data, ct);
var result = await _save.LoadAsync<PlayerSaveData>("player", ct);
var keys = _save.GetKeys();
_save.Delete("player");
Remarks
[직렬화] IMemoryPackSerializer(MemoryPack) — 로컬 저장 전용. [금지] IJsonSerializer(Newtonsoft) — Config/외부 API 전용. [규칙] 저장 대상 타입은 반드시 [MemoryPackable] + partial 선언. [규칙] 저장 파일은 SaveFile<T> 래퍼로 버전 정보를 포함한다. 저장 경로: Application.persistentDataPath/{key}.bin SaveAsync 실패 시 1회 재시도 후 Result.Fail 반환.
Methods
Delete(string)
해당 키의 저장 파일 삭제. 파일 미존재 / IO 오류 시 Result.Fail 반환. 예외 발생 금지.
Result Delete(string key)
Parameters
keystring
Returns
Exists(string)
해당 키의 저장 파일 존재 여부.
bool Exists(string key)
Parameters
keystring
Returns
- bool
GetKeys()
persistentDataPath에 존재하는 전체 저장 키 목록. UI 슬롯 표시 / 자동 저장 목록 등에 활용.
IReadOnlyList<string> GetKeys()
Returns
- IReadOnlyList<string>
LoadAsync<T>(string, CancellationToken)
데이터 비동기 로드. 파일이 없거나 로드 실패 시 Result.Fail 반환.
UniTask<Result<T>> LoadAsync<T>(string key, CancellationToken ct = default)
Parameters
keystring로드 키.
ctCancellationToken취소 신호.
Returns
- UniTask<Result<T>>
Type Parameters
T[MemoryPackable] 선언된 타입.
SaveAsync<T>(string, T, CancellationToken)
데이터 비동기 저장. IO 예외 시 1회 재시도.
UniTask<Result> SaveAsync<T>(string key, T data, CancellationToken ct = default)
Parameters
keystring저장 키 (.bin 파일명으로 사용).
dataT저장할 데이터.
ctCancellationToken취소 신호.
Returns
- UniTask<Result>
Type Parameters
T[MemoryPackable] 선언된 타입.