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