unity3d 检查玩家是否仍然在线或通过关机或退出游戏室离线

tsm1rwdh  于 2023-01-26  发布在  其他
关注(0)|答案(2)|浏览(198)

我有一个玩家正在Facebook Gameroom玩我的游戏。在我的数据库中有一个标志,告诉我该玩家登录了Facebook,所以我可以告诉他是在线的。在Unity中,我有一个脚本实现MonoBehaviour.OnApplicationQuit()将该玩家标记为离线,MonoBehaviour.OnApplicationFocus(bool)将该玩家标记为无焦点或AFK。
1.案例1:假设电力问题导致玩家电脑关机,我怎么才能将玩家标记为离线?有没有办法检测到玩家关机?
1.案例2:玩家关闭Gameroom窗口。是否有检测此操作的方法?OnApplicationQuit()无法处理此操作。

jucafojl

jucafojl1#

处理这个问题的标准方法是为你的lastseen日期时间戳设置一个超时。你的游戏应该定期刷新时间戳(比如在一个定时间隔,或者在一个事件上,比如发送聊天消息或完成某件事)...
然后在数据库上设置作业(如MSSQL Server中的代理作业)以提取时间戳已过期的所有登录记录。然后,该作业更改LoggedIn标志,以便注销用户。此外,作业的代理可以是在后台运行的程序,该程序位于处理此操作的服务器之一上...但是,这是处理你所问情况的基本方法。
祝你好运,希望这对你有帮助!!

nbysray5

nbysray52#

我可以将两者作为单一解决方案提供:
我建议你使用延迟循环来ping互联网服务(比如等待2秒,然后再循环...),并检查你所说的房间Windows。互联网连接的可靠解决方案是在执行此循环的同时ping互联网(yourhost.com),在同一循环中,你也可以检查房间Windows

相关问题