我正在为iOS创建2D游戏。我的游戏使用主机和客户端方法为两个玩家与局域网中的游戏。 主机在加载下一个场景后等待客户端。问题是两个玩家的场景加载都没有同步。场景比另一个更早开始。我想等待所有玩家在任何其他工作之前加载场景。
我的NetworkManager没有分配在线和离线场景。没有playerPrefab也因为它会动态添加。我正在使用ServerChangeScene()。 我对Unity和网络都很陌生,所以对任何帮助表示赞赏。
public override void OnServerConnect (NetworkConnection conn)
{
base.OnServerConnect (conn);
print ("OnServerConnect");
//not localclient(host)
if (client != null && client.connection != conn) {
ServerChangeScene ("PlayScene");
}
}
答案 0 :(得分:4)
好的,因为没有答案,我使用自定义消息处理了这个问题。我制作了一个加载屏幕,加载异步#34; PlayScene"并将其allowSceneActivation设置为false。当客户端调用OnClientSceneChanged()时,他将向服务器发送一条消息,表明它已完成加载场景。服务器将遍历所有客户端以检查是否所有客户端都已完成加载场景,并将回复所有客户端现在已准备好进行场景激活。