"Did not find target for sync message for x" 这是什么意思,我该如何解决

"Did not find target for sync message for x" What does this mean and how can i solve it

我目前正在统一制作一款多人游戏,但我在客户端而不是主机上收到此警告,这似乎与 Destroy(gameObject) 有关;当一个对象被销毁时它会发生,但它似乎并不总是在一个项目被销毁时弹出。

该消息意味着 Unity 的网络引擎收到了某个似乎不存在的对象的更新。

这可能是个问题,因为它表明服务器和客户端不同步——在这种情况下,它们不再就场景中存在或不存在哪些对象达成一致。想象一下,例如,您的一名球员被一枚火箭弹击中并受伤 "doesn't exist" 在他们的屏幕上。

如果丢失的是不重要的纯装饰性物品,您可能会重新考虑该物品是否需要 network-synced。

如果丢失的是重要物品,你应该review the object's lifecycle。它是用 NetworkServer.Spawn 创建并用 NetworkServer.Destroy 销毁的吗?否则,您很可能会遇到错误。

对于收到此错误的任何人,以下是可能导致此错误的简单原因:

我有两个 NetworkTransformChild 组件试图访问两个禁用的游戏对象。确保每个启用的网络组件都能够访问其指定的 gameobject/component.

将网络发送速率设置为 0 解决了我的问题。在我的例子中,导致问题的物体是弹丸(发射后不管)。