写了个测试小程序,编译,pc端开多个进行模拟加入房间;关掉游戏模拟“master断线”,然后都可以很正常的更换master。更换的逻辑和代码都是参考球球大作战那个demo写的。

但如果用unity editor直接点play运行加入房间,再点击play按钮终止运行时,并不会立即更换master,而是在下一次点击play按钮时才会更换master,请问这个应该怎么处理?

我在master的组件加了关闭client代码,也确定在“点击editor的play按钮终止运行时”print被调用了:

void OnApplicationQuit()
{
    print("OnApplicationQuit");
    var client = LeanCloudUtils.GetClient();
    if (client != null) client.Close();
}

Close 是个异步过程,OnApplicationQuit() 不一定能够完成。
如果测试,可以用个按钮触发

1 人赞了这个帖子.