在2分钟不活动后重新开始游戏

时间:2015-08-06 03:22:15

标签: c# unity3d restart

我试图弄清楚如何开始编写一段侦听用户活动的代码。如果几分钟后完全没有活动,我希望游戏重启。有人可以推荐一个很好的起点来获得这样的工作吗?

3 个答案:

答案 0 :(得分:3)

一种方法是利用Invoke功能。

    void Start()
    {
        RestartGameInvoke();
    }

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

你可以调用RestartGameInvoke();如果发生任何用户活动。如果没有活动发生,游戏将在10秒内重新启动。

答案 1 :(得分:1)

假设这是关于unity api的,你可以通过update方法设置一个定时器。在Update方法中使用Time.deltaTime创建一个计时器,一旦经过的时间过去,就做你喜欢的。这里的技巧是通过鼠标/键盘检查任何输入,具体取决于您的方案。如果已满足键盘或鼠标输入,则在与更新方法内部经过的时间进行比较时,将已经过的几分钟重置为0。

答案 2 :(得分:1)

如果您想知道如何捕捉来自任何地方的所有输入,请查看

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;
}