在Unity中,每1秒仅限制一次对动作的反应?

时间:2016-03-13 12:50:47

标签: c# unity3d time

在Unity3D的Scene中,如何在runloop中的MonoBehaviour中每隔一秒对代码做一次反应?

1 个答案:

答案 0 :(得分:1)

如果您在Unity3D环境中,请停止阅读并查看Joe Blow's answer否则,请继续阅读。

您可以使用Stopwatch为活动计时。创建一个Stopwatch作为私有字段/属性,并从构造函数初始化它:

public YourClass()
{
    ScoreStopwatch = new Stopwatch();
    ScoreStopwatch.Start();
    // Other initialization...
}

private Stopwatch ScoreStopwatch { get; set; }

然后您可以使用Elapsed属性来获取自上次分数增加以来的时间,如下所示:

if(Input.GetMouseButtonUp(0) && ScoreStopwatch.Elapsed.TotalSeconds > 1)
{
    score++;
    ScoreStopwatch.Reset();
    ScoreStopwatch.Start();
}