闲置 2 分钟后重新开始游戏

Restart game after after 2 minutes of inactivity

我正在尝试弄清楚如何开始编写一段用于侦听用户 activity 的代码。如果几分钟后完全没有 activity,我希望游戏重新开始。有人可以推荐一个好的起点来实现这样的工作吗?

假设这是关于统一api,你可以通过更新方法设置一个定时器。在 Update 方法中使用 Time.deltaTime 来创建一个计时器,一旦经过的时间过去,就做你想做的事。这里的技巧是根据您的情况通过 mouse/keyboard 检查任何输入。如果满足键盘或鼠标输入,则与更新方法中已经过去的时间相比,将已经过去的几分钟重置为 0。

一种方法是利用 Invoke 函数。

    void Start()
    {
        RestartGameInvoke();
    }

    void RestartGameInvoke()
    {
        CancelInvoke ();
        Invoke ("RestartGame", 10);
    }
    void RestartGame()
    {
        //
    }

您可以调用RestartGameInvoke();如果有任何用户 activity 发生。如果没有 activity 发生,那么游戏将在 10 秒后重新开始。

如果您想知道如何从任何地方捕获所有输入,请查看

Input.anyKeyDown

http://docs.unity3d.com/ScriptReference/Input-anyKeyDown.html

此外你还可以检查鼠标位置是否与上一帧相同。将此与@Neeraj Kumar 的回答结合使用,即

private Vector3 prevMousePosition = Vector3.zero;
void Update()
{
    if(Input.anyKeyDown || Input.mousePosition != prevMousePosition)
         RestartGameInvoke();

     prevMousePosition = Input.mousePosition;
}