Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с Unity!

Максим Лаптев Ученик (167), на голосовании 1 час назад
я делаю игру кликер и при переходе на другую сцену(магазина) счет который я накликал не сохраняется, помогите решить проблему.

вот сам код:

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class Game : MonoBehaviour
{
public Button backButton;
public Button clickButton;
public Text scoreText;
private int score;
void Start()
{
score = PlayerPrefs.GetInt("Score", 0);
backButton.onClick.AddListener(OnBackButtonClick);
}
public void OnClickButton()
{
score++;
}
private void Update()
{
scoreText.text = "счет:" + score ;
}
void OnBackButtonClick()
{
SceneManager.LoadScene("Shop");
}
void OnApplicationQuit()
{
PlayerPrefs.SetInt("Score", score);
PlayerPrefs.Save();
}
}
Голосование за лучший ответ
Ден Харгус Знаток (385) 1 месяц назад
Ваша проблема заключается в том, что счетчик очков ("score") теряется при переходе на другую сцену. Вот несколько предложений по исправлению ситуации:

Сохранение состояния: Когда вы покидаете сцену, убедитесь, что значение счета сохранено в PlayerPrefs:

void OnBackButtonClick()
{
// Сохраняем текущее значение счета
PlayerPrefs.SetInt("Score", score);
PlayerPrefs.Save();
SceneManager.LoadScene("Shop");
}
Чтение значения при загрузке сцены: При загрузке новой сцены необходимо восстанавливать значение счета из PlayerPrefs:

void Start()
{
score = PlayerPrefs.GetInt("Score", 0);
backButton.onClick.AddListener(OnBackButtonClick);
}
Управление состоянием: Также можно использовать серверное хранилище или локальное хранилище (например, SQLite) для сохранения состояния игры. Это позволит избежать потери данных при закрытии приложения или перезапуске устройства.
В целом, вы правильно используете PlayerPrefs для хранения данных, но стоит убедиться, что данные сохраняются при каждом изменении и восстанавливаются при загрузке каждой сцены.
Максим ЛаптевУченик (167) 1 месяц назад
спс чат gpt
Похожие вопросы