Table of Contents

Interface ISaveSystem

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

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

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

key string

Exists(string)

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

bool Exists(string key)

Parameters

key string

Returns

bool

LoadAsync<T>(string, CancellationToken)

데이터 비동기 로드. 파일 없거나 실패 시 default 반환.

UniTask<T> LoadAsync<T>(string key, CancellationToken ct = default)

Parameters

key string

로드 키.

ct CancellationToken

로드 취소 신호.

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

key string

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

data T

저장할 데이터.

ct CancellationToken

저장 취소 신호.

Returns

UniTask

Type Parameters

T

[MemoryPackable] 선언된 직렬화 가능한 타입.