Table of Contents

Interface ISaveSystem

Namespace
Framework.Systems.Save
Assembly
Assembly-CSharp.dll

데이터 저장/로드/존재 확인/삭제/키 조회 계약.

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

key string

Returns

Result

Exists(string)

해당 키의 저장 파일 존재 여부.

bool Exists(string key)

Parameters

key string

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

key string

로드 키.

ct CancellationToken

취소 신호.

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

key string

저장 키 (.bin 파일명으로 사용).

data T

저장할 데이터.

ct CancellationToken

취소 신호.

Returns

UniTask<Result>

Type Parameters

T

[MemoryPackable] 선언된 타입.