Не работает скрипт сохранения

По сути, ну как я думал все что происходит тут

BinaryFormatter сохраняет тот объект, что ему передан.

Не подскажешь, как именно эти переменные передать в виде кода?)

Хранить данные для сохранения в отдельном объекте, передавать его BinaryFormatter.

Как тут Using BinaryFormatter in Unity to Save and Load Game Data – Digital Ephemera

Еще такой вопрос, я понял как сохраняют GameObject, через Position обычно, но если есть функция Destroy(GameObject), и мне нужно сохранить именно уничтожение объекта, то есть ли смысл сохранять объект через его позицию?

Сохраняют то, что надо сохранить.
Тут, например, позиция, поворот, патроны, состояние и т.д. (состояние воина — стоит/идет/атакует/умер/…).

Так с уничтоженным объектом же нельзя работать ) Юнити ошибку выдаст если попытаться обратиться к свойствам уничтоженного объекта.

Ну точнее оно не совсем сразу уничтожает, но все равно уничтожение нужно только для случаев когда объект больше не нужен в программе.

Так что можно например

  • Не уничтожать, а просто помечать как уничтоженный с помощью какого-нибудь своего отдельного свойства. Заодно можно сделать отображение уничтоженных/убитых объектов в игре.

или

  • Создавать только сохраненные объекты при загрузке сохранения (ну или уничтожать все остальные).

То есть можно перевести в объект в bool и сохранять уже эту переменную?

Да, но смотря как сделано сохранение/загрузка.

Если хранить всё сохраняемое в отдельных своих классах (как в туториале выше), то должно быть не сложно. Сделать в классе два свойства (позиция и уничтожен ли), и при загрузке проверять.

Как я понял, мне позиция не нужна
Могу ли я создать переменную bool и в старте написать bool = true;
а в public void Buy if(Destroy(GameObject)){bool = false};
И сохранять именно значение bool?

Что именно вы пытаетесь сохранить-то?

У меня уничтожаются объекты при нажатии кнопки, при новом запуске они остаются, мне же нужно чтобы их не было

какие объекты?

при запуске чего?

Эти объекты

при запуске сцены

а не должны?

Вот я и хочу сделать для этого сохранение, чтобы эти объекты не оставались

тогда зачем сохранять?

Могу в лс все расписать и скрины прислать, возможно так понятней будет

пришли

Можно в каждом экземпляре объекта сделать несколько панелей и отображать нужную, в зависимости от состояния объекта. Тогда ничего сохранять не надо и данные не будут теряться.
Криво, но должно работать.

наоборот должно быть :man_facepalming:

Так для не уничтоженных нужна.

То есть сохранять надо примерно такой объект:

public class MyObjectData
{
    public Vector3 position;

    public bool isDestroyed;
}