gpt4 book ai didi

c# - 如何使用 NetworkManager 为所有客户端同步场景加载

转载 作者:太空狗 更新时间:2023-10-29 23:20:53 26 4
gpt4 key购买 nike

我正在为 iOS 创建一个 2D 游戏。我的游戏使用主机和客户端方法在 LAN 中进行两人对战游戏。主机在加载下一个场景后等待客户端。问题是两个玩家的场景加载不同步。场景比另一个场景开始得早。我想在任何其他工作之前等待所有玩家加载场景。

我的 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");
}
}

最佳答案

好的,因为没有答案,我使用自定义消息处理了这个问题。我制作了一个加载屏幕,异步加载“PlayScene”并将其 allowSceneActivation 设置为 false。当客户端调用 OnClientSceneChanged() 时,他将向服务器发送一条消息,告知它已完成加载场景。服务器将遍历所有客户端以检查是否所有客户端都已完成场景加载,并回复所有客户端现在已准备好激活场景。

关于c# - 如何使用 NetworkManager 为所有客户端同步场景加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37997961/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com