使用 Unity Network 使用自定义脚本生成对象

Spawn object with custom script with Unity Network

我有一个 PlayerPref,它在 OnStartLocalPlayer() 中生成更多对象。 因此在 OnStartLocalPlayer() 中它调用 Command(假设在服务器上调用)实例化 GameObject 并设置其脚本的一些值。最后它调用 SpanWithClientAuthority()... 问题是,在所有者客户端和服务器上,那些脚本 tweeks 是正确的,但在所有其他客户端上,它丢失了所有设置(例如游戏对象引用等)。我做错了什么?

再次简而言之:playerPref GO 必须具有多个其他对象的引用列表,并且这些对象必须具有对该 playerPref GO 的引用。 (让它们成为 playerPref GO 的一部分并不是解决方案)。

如果我对你的问题的理解正确,你需要在拥有相同游戏对象的所有客户端上设置引用。 [Command] 用于客户端到服务器。你需要的是一个[ClientRpc]。使 OnStartLocalPlayer() 调用 [ClientRpc] 函数,在该函数中(例如:RpcSetRefs())设置您需要每个客户端拥有的引用。