сохранение - загрузка структуры в easy save 3

Общие вопросы о Unity3D

сохранение - загрузка структуры в easy save 3

Сообщение MrDmitry 23 янв 2024, 12:52

Надеюсь тут есть люди которые пользовались плагином easy save 3
Решил прикрутить в игре превьюшку к сохранениям и собственно сами сохранение и загрузку. Сделал для этого структуру

Синтаксис:
Используется csharp
public struct SaveDataStruct
{
    public DateTime SaveDate;
    public string SaveName;
    public byte[] SaveScreen;
    public List<GameObject> SaveObjects;
}


ну и само сохранение и загрузку я делаю так
Синтаксис:
Используется csharp
public List<GameObject> _saveObjectList;

public void SaveTest()
{
    var filename = $"{Application.dataPath}/Saves/123.sav";
    var data = new SaveDataStruct();

    data.SaveName = "123";
    data.SaveDate = DateTime.Now;
    data.SaveScreen = _screenCamer.TrySaveCameraView(_camera);
    data.SaveObjects = new List<GameObject>();

    foreach (GameObject list in _saveObjectList)
    {
        data.SaveObjects.Add(list);
    }

    ES3.Save("prefabInstances", data, filename);
}

public SaveDataStruct LoadTest()
{
    var filename = $"{Application.dataPath}/Saves/123.sav";
    return ES3.Load("prefabInstances", filename, new SaveDataStruct());
}


сама превьюшка работает и данные сохраняются и загружаются. Но как вытащить GameObject? ease save пишет не сам объект а некий идентификатор для объект который она и сохраняет, соответственно при загрузки объекты при загрузки не меняют свои трансформы. На оффициальном сайте написано что объекты грузятся так

Синтаксис:
Используется csharp
public void SaveTest()
{
    var filename = $"{Application.dataPath}/Saves/123.sav";
    var data = new List<GameObject>();

    foreach (GameObject list in _saveObjectList)
    {
        data.Add(list);
    }

    ES3.Save("prefabInstances", data, filename);
}

public void LoadTest()
{
    var filename = $"{Application.dataPath}/Saves/123.sav";
    ES3.Load("prefabInstances", filename, new List<GameObject>());
}



И это работает, то есть объекты меняют свою позиции. на сохранённые подгружаются хп со скрипта и т.д Отличия только в том что в первом случае я записываю и загружаю данные в структуру а во втором случае я все пишу напрямую в лист gameobject. Так как мне загрузить gameobject из своей структуры?
MrDmitry
UNITрон
 
Сообщения: 223
Зарегистрирован: 05 авг 2017, 17:21

Re: сохранение - загрузка структуры в easy save 3

Сообщение MrDmitry 23 янв 2024, 13:03

Вот такой код(без структуры) у меня заработал как надо

Синтаксис:
Используется csharp
public void SaveTest()
{
    var filename = $"{Application.dataPath}/Saves/123.sav";

    var data = new List<GameObject>();

    foreach (GameObject list in _saveObjectList)
    {
        data.Add(list);
    }

    ES3.Save("Name", "123", filename, _saveSetting);
    ES3.Save("Date", DateTime.Now, filename, _saveSetting);
    ES3.Save("Data", data, filename, _saveSetting);
}

public void LoadTest()
{
    var filename = $"{Application.dataPath}/Saves/123.sav";
    var name = ES3.Load("Name", filename, _saveSetting);
    Debug.Log(name);
    var date = ES3.Load("Date", filename, _saveSetting);
    Debug.Log(date);
    var list = ES3.Load("Data", filename, new List<GameObject>(), _saveSetting);
}
MrDmitry
UNITрон
 
Сообщения: 223
Зарегистрирован: 05 авг 2017, 17:21


Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11