C# 如何检测玩家何时不玩游戏
我正在unity中制作一个游戏,但我正在检查游戏用户是否点击了任何东西。。因此,如果播放机空闲一定时间,比如说20秒,那么我将播放一个动画来指示播放机空闲您应该尝试使用e.mousePosition之类的事件来查看它是否被移动,并设置一个计数器20秒。如果事件e.mousePosition在20秒内未触发,则播放空闲动画。请参阅此处的Unity文档:如果您想为此创建一个全新的脚本C# 如何检测玩家何时不玩游戏,c#,unity3d,character,monodevelop,C#,Unity3d,Character,Monodevelop,我正在unity中制作一个游戏,但我正在检查游戏用户是否点击了任何东西。。因此,如果播放机空闲一定时间,比如说20秒,那么我将播放一个动画来指示播放机空闲您应该尝试使用e.mousePosition之类的事件来查看它是否被移动,并设置一个计数器20秒。如果事件e.mousePosition在20秒内未触发,则播放空闲动画。请参阅此处的Unity文档:如果您想为此创建一个全新的脚本 public static class IdleCheck { public static int Time
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即可。我认为这样做应该可以 单击时,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
}
}
当有输入时,可以将DateTime字段设置为DateTime.UtcNow。如果DateTime.UtcNow-lastInput大于20秒,请播放动画。了解游戏的每个人都在玩游戏。还有,你刚刚输掉了比赛。时间。时间。总是用它来计时Unity@Programmer我相信你指的是时间,是这个目的的时间。但是谢谢,我改了。我实际上指的是Time.deltaTime,因为它比Time.Time更准确。只要在每一帧将其添加到计数器中。@程序员,考虑到类不是从Monobehavior派生的,您会怎么做?是什么让您瘦到类不是从MonoB派生的?