У меня есть простой магазин, где, когда игрок нажимает кнопку «BUY», элемент разблокируется и остается сохраненным как разблокированным. Это в одной сцене (Shop scene).Сохранение PlayerPrefs для нескольких экземпляров
У меня есть вторая сцена, где персонаж разблокируется на основе этой покупки, чтобы игрок мог выбрать (персонаж сцены).
Я помещаю скрипты в пустые объекты gameObjects на каждой сцене. Он отлично работает, когда он просто покупает одного персонажа. Но как я реплицирую это для нескольких символов.
Я мог бы разместить сценарии на отдельных кнопках и разместить соответствующие игровые объекты под инспектором, но это было бы нецелесообразно, если бы у меня было 100 символов.
Просьба сообщить, как я мог бы выполнить эту работу по нескольким экземплярам. Мысль о мечении и это тоже не представляется возможным. Я открыт для предложений, если есть лучший способ сделать это. Благодарю.
//Class controlling Shop Scene via an empty Gameobject
public class ShopManager : MonoBehaviour
{
private bool unlocked;
public GameObject greyImg;
void Start()
{
unlocked = PlayerPrefs.GetInt("unlocked") == 1;
greyImg.SetActive(unlocked);
}
public void Buy()
{
unlocked = true;
PlayerPrefs.SetInt("unlocked", 1);
PlayerPrefs.Save();
greyImg.SetActive(true);
}
}
Вот как устанавливается единая установка для сцены магазина. Если элемент уже куплен, серое изображение установлено на активное, что не позволяет пользователю больше нажимать кнопку «зеленый купить».
Когда персонаж разблокирован/купил
//Class controlling Character select scene via an empty Gameobject
public class CharacterManager : MonoBehaviour
{
private bool unlocked;
public GameObject greySelect;
void Start()
{
unlocked = PlayerPrefs.GetInt("unlocked") == 1;
}
void Update()
{
if (unlocked)
{
greySelect.SetActive(false);
}
}
}
Это как настройка Unity выглядит для выбора символов сцены. Если символ уже разблокирован, серое изображение выбора будет неактивным, и будет отображена оранжевая кнопка выбора, позволяющая выбрать символ.
когда персонаж разблокирован
Отдельные кнопки должны иметь собственный публичный метод, который активируется при нажатии. В настоящее время все будут иметь один и тот же метод, таким образом, в конечном итоге будут активированы все символы одновременно, когда 1 разблокируется. Другое, что отдельный класс, чтобы сохранить информацию, как я буду обращаться с этим. Вы имеете в виду 10 разных методов, каждый из которых выполняет разные действия для активации отдельных персонажей? (Я предполагаю, что это не то, что вы имеете в виду, но я не могу понять, как я собираюсь сделать один способ работы по-разному для разных разблокировок символов). Сможете ли вы привести пример. Tnks. – kar
Я обновил свой ответ. Помогает ли это больше? –
Получил это. Благодарю. – kar