Interface ISaveSystem
데이터 저장/로드/존재 확인/삭제 계약.
public interface ISaveSystem
Examples
[MemoryPackable]
public partial class PlayerSaveData { public int Level; public float Hp; }
await _saveSystem.SaveAsync("player", new PlayerSaveData { Level = 5 }, ct);
var data = await _saveSystem.LoadAsync<PlayerSaveData>("player", ct);
Remarks
[직렬화] IMemoryPackSerializer(MemoryPack) 사용 — 내부 고성능 로컬 저장 전용. [금지] IJsonSerializer(Newtonsoft) — Config/외부 API 전용. 저장 대상 타입은 반드시 [MemoryPackable] 특성 필요. 저장 경로: Application.persistentDataPath/{key}.bin 저장 실패 시 1회 재시도 후 ExceptionHandler로 에러 처리.
Methods
Delete(string)
해당 키의 저장 파일 삭제.
void Delete(string key)
Parameters
keystring
Exists(string)
해당 키의 .bin 저장 파일 존재 여부.
bool Exists(string key)
Parameters
keystring
Returns
- bool
LoadAsync<T>(string, CancellationToken)
데이터 비동기 로드. 파일 없거나 실패 시 default 반환.
UniTask<T> LoadAsync<T>(string key, CancellationToken ct = default)
Parameters
keystring로드 키.
ctCancellationToken로드 취소 신호.
Returns
- UniTask<T>
로드된 데이터. 실패 시 default.
Type Parameters
T[MemoryPackable] 선언된 타입.
SaveAsync<T>(string, T, CancellationToken)
데이터 비동기 저장. 실패 시 1회 재시도.
UniTask SaveAsync<T>(string key, T data, CancellationToken ct = default)
Parameters
keystring저장 키 (.bin 파일명으로 사용).
dataT저장할 데이터.
ctCancellationToken저장 취소 신호.
Returns
- UniTask
Type Parameters
T[MemoryPackable] 선언된 직렬화 가능한 타입.