gpt4 book ai didi

c# - 重新开始游戏时重置分数

转载 作者:太空宇宙 更新时间:2023-11-03 23:11:09 26 4
gpt4 key购买 nike

我正在制作一款 VR 游戏,其中只有一个关卡在主场景中,而另一个场景是“结束”,在该游戏中可以通过重新启动(重新加载主场景)看到游戏结束文本分数,并且退出按钮。

我的问题是,M 使用此脚本作为下面给出的 ScoreManager 脚本。我也希望在结束场景中得到这个分数,并且它正在使用 PlayerPrefs

作为 m

但主要的问题是,在结束场景点击重启时,游戏会重新加载主场景,但分数仍然与上一场比赛相同。我希望它设置为零。

using UnityEngine;
using UnityEngine.UI;
using System.Collections;

namespace CompleteProject
{
public class ScoreManager : MonoBehaviour
{
public static int score ; // The player's score.
Text text; // Reference to the Text component.

void Awake()
{
// Set up the reference.
text = GetComponent<Text>();
score = 0;
score = PlayerPrefs.GetInt("Score");
}

void Update ()
{

// Set the displayed text to be the word "Score" followed by the score value.
text.text = "Score: " + score;
PlayerPrefs.SetInt("Score", score);

}
}
}

我也用过DeleteKey(string)删除乐谱,但是没有任何反应。

最佳答案

您说您尝试了 DeleteKey(int score) 但它没有用。您的代码在任何地方都具有DeleteKey 函数。如果您不知道如何使用该功能,下面的代码将向您展示如何使用它。如果您确实知道如何使用它,但它没有像您的问题中提到的那样工作,请在它之后调用 PlayerPrefs.Save()。这应该删除 key 并立即更新它。

要在每场比赛后重置分数,请将代码放在 OnDisable() 函数中。

void OnDisable()
{
PlayerPrefs.DeleteKey("Score");
PlayerPrefs.Save();
}

要在游戏开始时重置它,获取当前的分数,就像您在Awake() 函数中所做的那样,然后将上面的函数更改为OnEnable().

关于c# - 重新开始游戏时重置分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39155642/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com