检查玩家是否仍在线或因关机或游戏室退出而脱机



我有一个玩家在Facebook Gameroom中玩我的游戏。在我的数据库中,有一个标志告诉我玩家已使用Facebook登录,因此我可以判断他在线。在Unity中,我有一个脚本实现MonoBehavior.OnApplicationQuit((将播放器标记为离线,并将MonoBehavior.OnApplicationFocus(bool(将播放器标记为NoFocus或AFK。

  1. 案例1:假设电力问题关闭了玩家的PC。如何将播放器标记为离线?有没有办法检测到播放器已关闭?
  2. 情况 2:玩家关闭游戏室窗口。有没有办法检测这个动作?OnApplicationQuit(( 对此不起作用。

处理此问题的标准方法是为上次看到的日期时间戳设置超时。您的游戏应定期刷新时间戳(例如在定时间隔上,或者在发送聊天消息或完成某事等事件上(...

然后,在数据库上设置一个作业(如 MSSQL Server 中的代理作业(,以拉取时间戳已过期的所有记录。然后,作业更改了登录标志,以便用户注销。此外,作业的代理很容易成为在后台运行的程序,该程序在您的一台服务器上处理此问题......但是,这是处理您所问情况的基本方法。

祝你好运,希望这有帮助!!

我可以将两者作为单一解决方案提供:

我建议你使用延迟循环(比如等待2秒,然后再次循环......(ping互联网服务,并检查你正在谈论的房间窗户。互联网连接的可靠解决方案是在执行此循环时ping互联网(google.com/yourhost.com(,在同一循环中您还可以检查房间窗口

最新更新