Table of Contents

Class SaveSystem

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

ISaveSystem 구현체. MemoryPack 바이너리 기반 고성능 로컬 저장/로드.

public class SaveSystem : ISaveSystem
Inheritance
object
SaveSystem
Implements

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 사용. 이유: 사람이 직접 편집하지 않음, 고성능 필요, 대용량 구조체 배열 지원. [금지] IJsonSerializer(Newtonsoft) → Config/외부 API 전용. 저장 경로: Application.persistentDataPath/{key}.bin 저장 실패 시 Warning 로그 후 1회 재시도. 재시도 실패 시 ExceptionHandler.Error. 저장 대상 타입은 [MemoryPackable] 특성 필요.

Constructors

SaveSystem(IMemoryPackSerializer, ILogSystem, IExceptionHandler)

public SaveSystem(IMemoryPackSerializer serializer, ILogSystem log, IExceptionHandler exceptionHandler)

Parameters

serializer IMemoryPackSerializer
log ILogSystem
exceptionHandler IExceptionHandler

Methods

Delete(string)

해당 키의 저장 파일 삭제.

public void Delete(string key)

Parameters

key string

Exists(string)

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

public bool Exists(string key)

Parameters

key string

Returns

bool

LoadAsync<T>(string, CancellationToken)

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

public 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회 재시도.

public UniTask SaveAsync<T>(string key, T data, CancellationToken ct = default)

Parameters

key string

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

data T

저장할 데이터.

ct CancellationToken

저장 취소 신호.

Returns

UniTask

Type Parameters

T

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