您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
45 行
926 B
45 行
926 B
using UnityEngine;
|
|
|
|
public class SaveSystem : ScriptableObject
|
|
{
|
|
public LocationDatabase locationDatabase;
|
|
[SerializeField] private LoadEventChannelSO _loadLocation = default;
|
|
|
|
public string saveFilename = "save.chop";
|
|
public Save saveData = new Save();
|
|
|
|
void OnEnable()
|
|
{
|
|
_loadLocation.OnLoadingRequested += CacheLoadLocations;
|
|
}
|
|
|
|
void OnDisable()
|
|
{
|
|
_loadLocation.OnLoadingRequested -= CacheLoadLocations;
|
|
}
|
|
|
|
private void CacheLoadLocations(GameSceneSO[] locationsToLoad, bool showLoadingScreen)
|
|
{
|
|
LocationSO locationSo = locationsToLoad[0] as LocationSO;
|
|
if (locationSo)
|
|
{
|
|
saveData._locationId = locationSo.DescId.uuid;
|
|
}
|
|
}
|
|
|
|
public void LoadGame()
|
|
{
|
|
if (FileManager.LoadFromFile(saveFilename, out var json))
|
|
{
|
|
saveData.LoadFromJson(json);
|
|
}
|
|
}
|
|
|
|
public void SaveGame()
|
|
{
|
|
if (FileManager.WriteToFile(saveFilename, saveData.ToJson()))
|
|
{
|
|
Debug.Log("Save successful");
|
|
}
|
|
}
|
|
}
|