C# 无止境赛跑者的高分
有人知道为什么高分不起作用吗? 在游戏中,分数系统起作用,但高分不起作用。我试过很多方法让它工作,但没有C# 无止境赛跑者的高分,c#,unity3d,C#,Unity3d,有人知道为什么高分不起作用吗? 在游戏中,分数系统起作用,但高分不起作用。我试过很多方法让它工作,但没有 using UnityEngine; using UnityEngine.UI; using System; public class score : MonoBehaviour { public Transform jugador; public Text Score; public Text highscore; public Text scoreTe
using UnityEngine;
using UnityEngine.UI;
using System;
public class score : MonoBehaviour {
public Transform jugador;
public Text Score;
public Text highscore;
public Text scoreText;
private int currentscore = 0;
private float floa;
void Start() {
highscore.text = PlayerPrefs.GetInt("HighScore", 0).ToString();
}
private void SetHighScore() {
if (currentscore > PlayerPrefs.GetInt("HighScore", 0)) {
PlayerPrefs.SetInt("HighScore", currentscore);
}
}
private void Update () {
floa = jugador.position.z;
currentscore = (int)floa;
scoreText.text = currentscore.ToString();
highscore.text = PlayerPrefs.GetString ("HighScore").ToString();
}
}
highscore正在工作,但当您在
highscore.text
上使用它时,您正在调用playerRefs.GetString
但highscore实际上是一个整数!
只需以这种方式更改最后一行:
highscore.text = PlayerPrefs.GetInt("HighScore",0).ToString();
应该可以:Dhighscore.text=PlayerPrefs.GetString(“highscore”).ToString() 上面的线是错误的,应该是
highscore.text=PlayerPrefs.GetInt(“highscore”,0).ToString()
因为当你保存分数时,PlayerPrefs是Int类型而不是字符串。你从未调用过
SetHighScore
?当你死后,确保调用SetHighScore()
。你不应该在更新中反复使用GetInt
。。。只要在应用程序启动时获取一次就足够了,以后只有在高分确实发生变化时才再次更新。这与