Я пытаюсь настроить систему рекордов для бесконечной игры раннеров, но текст всегда остается на 21, какое-либо решение для этого?
Код приведен ниже:
Для установки High Score и Normal Score:
using UnityEngine;
using UnityEngine.UI;
public class Score : MonoBehaviour
{
public Transform player;
public Text ScoreValue; //means, input is required(the text that needs to be constantly updated i.e. score), since a variable has been created
// Update is called once per frame
void Update()
{
int scoreValInt = Mathf.RoundToInt((player.position.z - 18) / 20);
ScoreValue.text = ((player.position.z-18)/20).ToString("0"); //to string 0 to remove all decimal points
PlayerPrefs.SetString("CurrentScore", (scoreValInt.ToString("0")));
PlayerPrefs.SetInt("IntHighScore", scoreValInt);
Debug.Log(PlayerPrefs.GetInt("IntHighScore"));
if (scoreValInt > PlayerPrefs.GetInt("IntHighScore"))
{
PlayerPrefs.SetString("HighScore", (scoreValInt.ToString("0")));
}
}
}
Для отображения High Score на Game Over сцене:
using UnityEngine;
using UnityEngine.UI;
public class HighScore : MonoBehaviour
{
public Text ValueToUpdate;
// Start is called before the first frame update
void Start()
{
ValueToUpdate.text = PlayerPrefs.GetString("HighScore", "0").ToString();
}
}
У меня есть две сцены, i) Сцена игры и ii) Game Over Сцена Когда игра заканчивается, сцена переходит к сцене Game Over с использованием Scene Management (сделано в другом сценарии). Основной счет обновляется каждый раз, когда заканчивается игра, но для High Score, даже если счет выше, чем ранее установленный высокий счет, сцена High Score в Game Over не обновляется и по какой-то причине застревает на 21 Может кто-нибудь дать мне решение для этого? Было бы очень признательно: -)