Как сохранять различные значения переменных из одного скрипта для различных объектов?

Если вы хотите сохранить различные значения переменных из одного скрипта для различных объектов в Unity, есть несколько подходов, которые можно использовать. Вот некоторые из них:

1. Использование сериализуемых классов:

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

[System.Serializable]
public class ObjectData {
    public float variable1;
    public int variable2;
}

public class YourScript : MonoBehaviour {
    public ObjectData objectData;

    private void Start() {
        // Для каждого объекта, которому нужно сохранить значения
        // создайте новый экземпляр ObjectData и присвойте его переменной objectData
        objectData = new ObjectData();
    }
}

2. Использование компонентов MonoBehavior:

Если компоненты, в которых вы хотите сохранить значения переменных, также являются наследниками класса MonoBehavior, вы можете использовать переменные экземпляра с модификатором доступа "public" или "SerializeField". В этом случае значения будут сохраняться в самом объекте каждого компонента.

public class YourScript : MonoBehaviour {
    public float variable1;
    public int variable2;
}

3. Использование хранилища данных:

Вы можете создать отдельный класс для хранения значений переменных и использовать его вместо самого скрипта. В этом случае вы сможете получать или изменять значения переменных через этот класс.

public class DataStorage {
    public float variable1;
    public int variable2;
}

public class YourScript : MonoBehaviour {
    private DataStorage dataStorage;

    private void Start() {
        dataStorage = new DataStorage();
    }

    private void Update() {
        // Получаем значение переменной
        float value = dataStorage.variable1;

        // Изменяем значение переменной
        dataStorage.variable1 = 10f;
    }
}

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