如何检测播放器何时没有玩游戏

时间:2017-10-11 14:25:19

标签: c# unity3d character monodevelop

我正在制作一个团结的游戏,但我正在检查游戏用户是否点击了任何东西。所以如果玩家闲置了一段时间,让我们说20秒然后我会播放一个动画表示玩家空闲

3 个答案:

答案 0 :(得分:1)

如果您想为此目的创建一个全新的脚本......

public static class IdleCheck
{
    public static int Timeout { get; set; }

    private static float lastAction;
    public static void ReportAction ()
    {
        lastAction = Time.time;
    }

    public static bool IsIdle
    {
        get { return (Time.time - time) > Timeout; }
    }
}

每次用户报告操作(例如点击)时,只需致电IdleCheck.ReportAction()并在需要时使用IdleCheck.IsIdle

答案 1 :(得分:0)

你应该尝试使用像e.mousePosition这样的事件来查看它是否被移动并且计数器设置为20秒。如果事件e.mousePosition未在20秒内触发,则播放空闲动画。请参阅此处的Unity文档:https://docs.unity3d.com/ScriptReference/Event-mousePosition.html

答案 2 :(得分:0)

我认为这样的事情应该这样做

点击后,

anyClick应为true。

float timeSinceLastClick = 0.0f;
void Update()
{
    timeSinceLastClick += Time.deltaTime;

    if(anyClick)
    {
        timeSinceLastClick = 0.0f;
        anyClick = false;
    }

    if(timeSinceLastClick > 20.0f)
    {
        //Play Idle animation
    }
}