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

Как отобразить HighScore в меню?

Доброго времени суток, подскажите пожалуйста как можно отобразить highscore в меню( на другой сцене)?
Есть такой скрипт, висит на игроке
public class PlayrMovement : MonoBehaviour
{
private Rigidbody2D playerRb;
public float speed = 3;
private static int score;
private static int highScore;

public event UnityAction ScoreChanged;
public event UnityAction HighScoreChanged;

private void Start()
{
playerRb = GetComponent();
playerRb.GetComponent().gravityScale = 0;
highScore = PlayerPrefs.GetInt("highScore", highScore);
}
private void Update()
{
if (Input.GetKey(KeyCode.W))
{
playerRb.transform.Translate(Vector2.up * speed * Time.deltaTime);
IncreaseScore();
}
if (Input.GetKey(KeyCode.S))
{
playerRb.transform.Translate(Vector2.down * speed * Time.deltaTime);
}
HighScoreMethod();
}
public void IncreaseScore()
{
ScoreChanged?.Invoke(score);
score++;
}
public void HighScoreMethod()
{
HighScoreChanged?.Invoke(highScore);
if (score > highScore)
{
highScore = score;
PlayerPrefs.SetInt("highScore", highScore);
PlayerPrefs.Save();
}
}
}

на UI висит это
public TextMeshProUGUI _highScoreText;
public PlayrMovement player;

private void OnEnable()
{
player.HighScoreChanged += OnHighScoreChanged;
}
private void OnDisable()
{
player.HighScoreChanged -= OnHighScoreChanged;
}
private void OnHighScoreChanged(int highScore)
{
_highScoreText.text = highScore.ToString();
Debug.Log("Work");
}
  • Вопрос задан
  • 44 просмотра
Подписаться 1 Простой 3 комментария
Решения вопроса 2
LittleBob
@LittleBob
Вроде же всё легко...
Вы же сохраняете значение в префсе, значит в void Start просто вытаскивайте это значение и записывайте в текст, только в новой сцене. У вас же есть готовый скрипт, либо я не то понял.
Ответ написан
Davilkus
@Davilkus
Делаю игры)
В меню:

if (PlayerPrefs.HasInt("highScore")) { // проверка - был ли сохранен highScore раньше?
_highScoreText.text = PlayerPrefs.GetInt("highScore"); // считывание значения и вывод
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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