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



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

一种方法是利用Invoke函数。

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

可以调用RestartGameInvoke();如果有任何用户活动发生。如果没有活动发生,游戏将在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;
}

假设这是关于unity api,你可以通过update方法设置一个计时器。在Update方法中使用time . deltatime来创建计时器,一旦经过的时间过去,就可以按照自己的喜好进行操作。这里的技巧是根据您的场景检查任何通过鼠标/键盘输入的内容。如果满足键盘或鼠标输入,则在与更新方法中经过的时间进行比较时,将已经过的几分钟重置为0。

最新更新