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