c# - 如何在统一重新加载场景时重新启动我的分数(重置静态分数)?

标签 c# variables static unity3d reload

如何在重新加载屏幕时重新开始我的乐谱

public class KeepingScore: Monobehaviour;

public static int Score;

我也设置了分数,每当我点击一个对象时,该对象就会被销毁并给我一个分数。

void OnMouseDown()

KeepingScore.score += 1;

Destroy();

我还有一个计时器,当我用完时间时,场景切换到关卡选择菜单,我再次点击关卡(即关卡 1),但我仍然可以看到我的分数回到原来的样子。我知道它是静态的,因此它仍然是一样的,每次我重新加载关卡时,是否有任何方法可以将值重置为零。谢谢

最佳答案

您可以实现 MonoBehaviour.OnLevelWasLoaded(int) 函数。
每次加载关卡时都会调用它。

例子

void OnLevelWasLoaded(int level) {
    KeepingScore.score = 0;
}

查看文档: http://docs.unity3d.com/ScriptReference/MonoBehaviour.OnLevelWasLoaded.html

关于c# - 如何在统一重新加载场景时重新启动我的分数(重置静态分数)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26934920/

相关文章:

c# - 从另一个泛型方法调用一个 MaybeNull 泛型方法

javascript - 在JS中,如何获取obj变量的名称

java - 通过 Int 变量表示空字节数组?

Firefox 扩展中使用的 Javascript 变量

c++ - `const int <variable>` 不能出现在常量表达式中

java - 同步取决于静态字段?

java - Java中静态字段有什么用?

c# - 将十六进制代码发送到串口

c# - 嵌套的 RibbonApplicationMenuItem 出错

c# - C# 中的新类型,带有设计时检查