Проблема с сохраненим PlayerPrefs

Дело в том, что один скрипт находится на нескольких объектах, в нем же написан PlayerPrefs, тк вот, при сохранение данных на одном объекте, они сохраняются и на другом, как можно это исправить ?

Свой ключ каждому создавать, типа obj1_someValue вместо someValue.

Но вообще PlayerPrefs же предназначен для простых глобальных настроек, типа настроек игры. Для сохранения чего-то более сложного лучше самому файлы создавать. Например какой-нибудь библиотекой сериализовывать в JSON.

Свой ключ? это как? Можно объяснить на примере или скинуть какую-нибудь ссылку

Каждый объект добавляет свой префикс в ключ, например, просто имя объекта.

PlayerPrefs.SetString(Name + "_someValue", "Hi");

Ух ты, так много писанины лишней получается, через JSON можно автосохранение сделать без кнопок?

Так а сейчас как? :thinking:

так же как и что угодно другое. Например Дайте плиз код как сделать checkpoint в 2D игре на unity - #2 от пользователя AlexP

Еще такой вопрос, просто ничего не получается, если я буду сохранять игру с помощью JSON, то мне также нужно будет создавать свой ключ каждому объекту или как лучше сделать?

Смотря какая задача :man_shrugging:

Можно например не свой ключ, а свое имя файла.

А JSON вообще подходит для Android или только PlayerPrefs?

Там тоже можно файлы сохранять.

Unity - Scripting API: Application.persistentDataPath

Слишком глуп я для сохранения, ничего не получается, уже какой день вожусь, и все таки с PlayerPrefs хоть что-то получается, можно ли сохранить по id объекта ?

PlayerPrefs это просто глобальное хранилище ключ => значение. Можно записать одно значение по ключу, можно достать это значение по ключу. Больше ничего не умеет.

Так что как я говорил, чтобы сохранять разные значения разными объектами, можно сделать так

Чтобы не писать везде Name + можно написать какую-нибудь такую функцию в объекте

string PrefsKey(string key)
{
    return Name + "_" + key;
}
PlayerPrefs.SetString(PrefsKey("someValue"), "Hi");


Получается так нельзя?

Смотря что :man_shrugging:
Если разные объекты пишут по одному ключу, то сохранится только последнее значение. Соответственно если нужно хранить значения от всех объектов, то нужно как-нибудь создавать уникальный ключ каждому объекту.

Каждый объект и так хранит свой id, разве не так?

Но PlayerPrefs же не знает об этом. Какой ключ передали, такой и используется.

Это