如何检测玩家何时没有玩游戏

问题描述 投票:0回答:3

我正在 Unity 中制作游戏,我想检查游戏玩家是否点击了任何内容。因此,如果玩家空闲了一定时间,比如说 20 秒,那么我想播放一个动画来指示玩家处于空闲状态。

c# unity-game-engine
3个回答
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


0
投票

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


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
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.