我在用Webgl构建的WordSearch游戏中使用playerprefs。当我在游戏过程中多次关闭游戏时,就会出现问题。它会自动以随机倒计时值开始,例如20、140等,并带有先前的分数(有时不是应该保存的确切分数)。 这是我正在使用playerpreds的代码...
[SerializeField] public float currentLevelScore = 0.0f;
[SerializeField] private float timeLeft;
[SerializeField] private string accessToken = "";
void Awake()
{
GetPlayerPrefData();
}
void Start() {
if(timeLeft == fixedTime)
{
PauseGame();
}
//Retrive Saved Player prefs Data
if (PlayerPrefs.GetFloat("timeLeft")<150 && PlayerPrefs.GetFloat("timeLeft") > 0)
{
StartGameCanvas.SetActive(false);
}
else
{
if(PlayerPrefs.GetFloat("timeLeft") == 150)
{
StartGameCanvas.SetActive(true);
}
}
if (PlayerPrefs.GetFloat("timeLeft").Equals(0) || PlayerPrefs.GetFloat("timeLeft").Equals(null))
{
PlayerPrefs.SetFloat("timeLeft", fixedTime);
}
}
void GetPlayerPrefData()
{
accessToken = PlayerPrefs.GetString("accessToken");
currentLevelScore = PlayerPrefs.GetFloat("currentLevelScore");
float countdownTime = PlayerPrefs.GetFloat("timeLeft");
if (countdownTime <= 0)
{
timeLeft = fixedTime;
}
else
{
timeLeft = countdownTime;
}
}
//This function is calls when the Time is up or user hit the quit button
public void ResetAllData()
{
float defaultScore = 0;
string defaultAccessToken = null;
PlayerPrefs.SetFloat("currentLevelScore", defaultScore);
PlayerPrefs.SetFloat("timeLeft", fixedTime);
PlayerPrefs.SetString("timeLeft", defaultAccessToken);
PlayerPrefs.Save();
}
仅在构建游戏后才会发生此问题。在编辑器中工作正常。
有人可以给我一个想法或帮助解决这个问题吗?任何建议将不胜感激...