Class SaveSystem
ISaveSystem 구현체. MemoryPack 바이너리 기반 고성능 로컬 저장/로드.
public class SaveSystem : ISaveSystem
- Inheritance
-
objectSaveSystem
- 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
serializerIMemoryPackSerializerlogILogSystemexceptionHandlerIExceptionHandler
Methods
Delete(string)
해당 키의 저장 파일 삭제.
public void Delete(string key)
Parameters
keystring
Exists(string)
해당 키의 .bin 저장 파일 존재 여부.
public bool Exists(string key)
Parameters
keystring
Returns
- bool
LoadAsync<T>(string, CancellationToken)
데이터 비동기 로드. 파일 없거나 실패 시 default 반환.
public 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회 재시도.
public UniTask SaveAsync<T>(string key, T data, CancellationToken ct = default)
Parameters
keystring저장 키 (.bin 파일명으로 사용).
dataT저장할 데이터.
ctCancellationToken저장 취소 신호.
Returns
- UniTask
Type Parameters
T[MemoryPackable] 선언된 직렬화 가능한 타입.