【问题标题】:Check if a player is still online or gone offline by power-off or Gameroom exit通过关机或退出 Gameroom 检查玩家是否仍然在线或离线
【发布时间】:2017-04-07 10:51:21
【问题描述】:

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

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

【问题讨论】:

  • 你有一个List 与所有当前活跃的玩家吗?
  • 我有一个数据库,每个玩家都是一个记录,我使用 lastseen = timestamp() 和一个标签作为 ONLINE 和 OFFLINE 的标志
  • 好吧,您可以做的是从数据库中获取玩家的List 并在您的应用程序中使用它。然后你可以显示谁是活跃的/在线的/离线的。

标签: unity3d unityscript facebook-unity-sdk facebook-gameroom


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-28
    相关资源
    最近更新 更多