玩家死亡并开始游戏后,得分不会重置并保持先前的得分。我希望分数在玩家死亡或离开游戏后重新设置。你怎么做到的?
public class ScoreScript : MonoBehaviour {
public static int scoreValue = 0;
Text score;
// Use this for initialization
void Start () {
score = GetComponent<Text>();
}
// Update is called once per frame
void Update () {
score.text = "Score: " + scoreValue;
}
}
答案 0 :(得分:1)
score.text
存储着Score:
的求值,并且在调用scoreValue
时存储在Update()
中的任何内容。您的代码都没有从显示的内容更新scoreValue
。
还要注意scoreValue
是static
,请确保准确反映您的意图(例如scoreValue
是ScoreScript
类的属性还是每个类的实例? )。请注意,score
不是静态的,我希望它们都具有相同的行为(静态或非静态)。
即像
public class ScoreScript : MonoBehaviour {
public static int scoreValue = 0;
Text score;
// Use this for initialization
void Start () {
score = GetComponent<Text>();
}
// Update is called once per frame
void Update () {
score.text = "Score: " + scoreValue;
}
void ScoreReset() {
scoreValue = 0;
}
void AddPoints(int points) {
scoreValue += points;
}
}
答案 1 :(得分:-1)
如果您在玩家死后scoreValue
之后加载场景,原因是0,因为我看到您在上面的代码中分配了0。