Как сохранить и загрузить массив объектов?

Чтобы сохранить и загрузить массив объектов в Unity, вам понадобится использовать механизм сериализации. Сериализация - это процесс преобразования объектов в формат, который можно сохранить или передать, и восстановления объектов из этого формата.

Для начала, вам нужно убедиться, что ваш класс объекта подлежит сериализации. Для этого добавьте атрибут [Serializable] к определению класса. Например:

[Serializable]
public class MyObject
{
    public string name;
    public int value;
}

Затем, чтобы сохранить массив объектов, вам нужно преобразовать его в байтовый массив, который можно записать в файл. Для этого вы можете использовать класс BinaryFormatter из пространства имен System.Runtime.Serialization.Formatters.Binary. Вот пример кода для сохранения массива объектов:

using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

public class SaveManager
{
    public static void SaveObjects(MyObject[] objects, string filePath)
    {
        BinaryFormatter formatter = new BinaryFormatter();
        FileStream file = File.Create(filePath);
        formatter.Serialize(file, objects);
        file.Close();
    }
}

Параметр objects - это массив объектов, который вы хотите сохранить, и filePath - путь к файлу, в который нужно сохранить данные.

Чтобы загрузить массив объектов обратно, просто выполните обратную операцию. Вот пример кода для загрузки массива объектов:

public class LoadManager
{
    public static MyObject[] LoadObjects(string filePath)
    {
        BinaryFormatter formatter = new BinaryFormatter();
        FileStream file = File.Open(filePath, FileMode.Open);
        MyObject[] objects = (MyObject[])formatter.Deserialize(file);
        file.Close();

        return objects;
    }
}

Параметр filePath - это путь к файлу, из которого нужно загрузить данные. Метод Deserialize преобразует байтовый массив обратно в массив объектов.

Использование этих примеров может выглядеть следующим образом:

MyObject[] objects = new MyObject[5];
// заполнение массива объектами

string filePath = "save.dat";
SaveManager.SaveObjects(objects, filePath);

MyObject[] loadedObjects = LoadManager.LoadObjects(filePath);
// использование загруженных объектов

Таким образом, ваш массив объектов будет сохранен в файле с помощью сериализации и восстановлен при необходимости.