Задать вопрос
@kdyatlov99

Как заставить работать PlayerPrefs в Unity?

Здравствуйте! Столкнулся со следующей проблемой: написал код для сохранений в Unity (я знаю, что для этого желательно использовать сериализацию, но на первое время пускай хотя бы PP будет) через PlayerPrefs. Вроде всё нормально, но сохранения просто не работают и непонятно почему. Помогите пожалуйста решить эту проблему, я ломаю над этим голову уже 3 дня...
public void SaveGame()
{
    x = _transform.position.x;
    y = _transform.position.y;
    z = _transform.position.z;
    PlayerPrefs.SetFloat("coffee", coffee_quantity);
    PlayerPrefs.SetFloat("chocolate", chocolate_quantity);
    PlayerPrefs.SetFloat("bread", bread_quantity);
    PlayerPrefs.SetFloat("meat", meat_quantity);
    PlayerPrefs.SetFloat("porridge", porridge_quantity);
    PlayerPrefs.SetFloat("crab", crab_quantity);
    PlayerPrefs.SetFloat("vessel", vessel_quantity);
    PlayerPrefs.SetFloat("water", water_quantity);
    PlayerPrefs.SetFloat("sweet", sweet_quantity);
    PlayerPrefs.SetFloat("antidarkness", antidarkness_quantity);
    PlayerPrefs.SetFloat("medic", medic_quantity);
    PlayerPrefs.SetFloat("angry", angry_quantity);
    PlayerPrefs.SetFloat("stoykost", stoykost_quantity);
    PlayerPrefs.SetFloat("otrava", otrava_quantity);
    PlayerPrefs.SetFloat("antiyad", antiyad_quantity);
    PlayerPrefs.SetFloat("oglushenie", oglushenie_quantity);
    PlayerPrefs.SetFloat("money", mo);
    PlayerPrefs.SetInt("scene", scene);
    PlayerPrefs.SetFloat("kong", kong_quantity);
    PlayerPrefs.SetFloat("dubinki", dubinki_quantity);
    PlayerPrefs.SetFloat("axe", axe_quantity);
    PlayerPrefs.SetFloat("alebarda", alebarda_quantity);
    PlayerPrefs.SetFloat("bulava", bulava_quantity);
    PlayerPrefs.SetFloat("pica", pica_quantity);
    PlayerPrefs.SetFloat("sith", sith_quantity);
    PlayerPrefs.SetFloat("shampur", shampur_quantity);
    PlayerPrefs.SetFloat("demon", demon_quantity);
    PlayerPrefs.SetFloat("sword", sword_quantity);
    PlayerPrefs.SetFloat("katana", katana_quantity);
    PlayerPrefs.SetFloat("chinapica", chinapica_quantity);
    PlayerPrefs.SetFloat("ostrovik", ostrovik_quantity);
    PlayerPrefs.SetFloat("machete", machete_quantity);
    PlayerPrefs.SetFloat("opustoshitel", opustoshitel_quantity);
    PlayerPrefs.SetFloat("x", x);
    PlayerPrefs.SetFloat("y", y);
    PlayerPrefs.SetFloat("z", z);
    PlayerPrefs.Save();
}

public void LoadGame()
{
    if(PlayerPrefs.HasKey("money"))
    {
        mo = PlayerPrefs.GetFloat("money");
        sweet_quantity = PlayerPrefs.GetFloat("sweet");
        antidarkness_quantity = PlayerPrefs.GetFloat("antidarkness");
        medic_quantity = PlayerPrefs.GetFloat("medic");
        angry_quantity = PlayerPrefs.GetFloat("angry");
        stoykost_quantity = PlayerPrefs.GetFloat("stoykost");
        otrava_quantity = PlayerPrefs.GetFloat("otrava");
        antiyad_quantity = PlayerPrefs.GetFloat("antiyad");
        oglushenie_quantity = PlayerPrefs.GetFloat("oglushenie");
        water_quantity = PlayerPrefs.GetFloat("water");
        vessel_quantity = PlayerPrefs.GetFloat("vessel");
        crab_quantity = PlayerPrefs.GetFloat("crab");
        chocolate_quantity = PlayerPrefs.GetFloat("chocolate");
        coffee_quantity = PlayerPrefs.GetFloat("coffee");
        bread_quantity = PlayerPrefs.GetFloat("bread");
        meat_quantity = PlayerPrefs.GetFloat("meat");
        porridge_quantity = PlayerPrefs.GetFloat("porridge");
        scene = PlayerPrefs.GetInt("scene");
        stick_quantity = PlayerPrefs.GetFloat("stick");
        kong_quantity = PlayerPrefs.GetFloat("kong");
        dubinki_quantity = PlayerPrefs.GetFloat("dubinki");
        axe_quantity = PlayerPrefs.GetFloat("axe");
        alebarda_quantity = PlayerPrefs.GetFloat("alebarda");
        bulava_quantity = PlayerPrefs.GetFloat("bulava");
        sith_quantity = PlayerPrefs.GetFloat("sith");
        shampur_quantity = PlayerPrefs.GetFloat("shampur");
        demon_quantity = PlayerPrefs.GetFloat("demon");
        sword_quantity = PlayerPrefs.GetFloat("sword");
        katana_quantity = PlayerPrefs.GetFloat("katana");
        chinapica_quantity = PlayerPrefs.GetFloat("chinapica");
        ostrovik_quantity = PlayerPrefs.GetFloat("ostrovik");
        machete_quantity = PlayerPrefs.GetFloat("machete");
        opustoshitel_quantity = PlayerPrefs.GetFloat("opustoshitel");
        x = PlayerPrefs.GetFloat("x");
        y = PlayerPrefs.GetFloat("y");
        z = PlayerPrefs.GetFloat("z");
        SceneManager.LoadScene(scene);
    }
}

6701916e1318c726657851.jpeg
67019172eecf8864162216.jpeg
  • Вопрос задан
  • 82 просмотра
Подписаться 1 Простой 5 комментариев
Пригласить эксперта
Ответы на вопрос 1
@Alexander_han
Скрипт выглядит очень замудрено, но попробуй просто еще раз его переписать. На мой взгляд все правильно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы