【Unity】MMORPG游戏开发(十)断线恢复
更新日期:2025年11月10日。
项目源码:获取源码。
索引
- MMORPG断线恢复
-
- 一、网络玩家的缓存
-
- 1.为玩家创建缓存
- 2.自定义缓存数据
- 3.玩家销毁前清理
- 4.玩家再次上线时,恢复缓存(服务端)
- 5.恢复到断线前(客户端)
MMORPG断线恢复
当玩家在某个副本中组队战斗时,突然断网了(或网络波动导致短暂网络不通,心跳超时后被服务端踢掉),再次上线后,该名玩家应该能够被恢复到断线前的副本和队伍中,当然,如果该副本已经结束(服务端已不存在该副本实例),队伍已解散(服务端已不存在之前的队伍实例),则玩家就会被丢到他进入副本前的地图中。
一、网络玩家的缓存
要实现这个功能,我们必须在玩家断线的那一刻将玩家的状态缓存下来,并设定缓存的生效时间(比如5分钟),在这个时间段内,再次登录将恢复玩家到断线前,超过这个时间缓存将不再生效。
1.为玩家创建缓存
如何精确定位玩家断线的时机,以在此为玩家创建缓存?
无论是玩家正常退出、断线或是被服务端踢掉,该玩家实例最终都会被服务端销毁:
ServerEntry.Current.DestroyPlayer(