Высокий показатель остается неизменным в игре на сцене, даже если игрок набрал больше очков - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь настроить систему рекордов для бесконечной игры раннеров, но текст всегда остается на 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 Может кто-нибудь дать мне решение для этого? Было бы очень признательно: -)

...