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