使用 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()
)设置您需要每个客户端拥有的引用。
我有一个 PlayerPref,它在 OnStartLocalPlayer() 中生成更多对象。 因此在 OnStartLocalPlayer() 中它调用 Command(假设在服务器上调用)实例化 GameObject 并设置其脚本的一些值。最后它调用 SpanWithClientAuthority()... 问题是,在所有者客户端和服务器上,那些脚本 tweeks 是正确的,但在所有其他客户端上,它丢失了所有设置(例如游戏对象引用等)。我做错了什么?
再次简而言之:playerPref GO 必须具有多个其他对象的引用列表,并且这些对象必须具有对该 playerPref GO 的引用。 (让它们成为 playerPref GO 的一部分并不是解决方案)。
如果我对你的问题的理解正确,你需要在拥有相同游戏对象的所有客户端上设置引用。 [Command]
用于客户端到服务器。你需要的是一个[ClientRpc]
。使 OnStartLocalPlayer()
调用 [ClientRpc]
函数,在该函数中(例如:RpcSetRefs()
)设置您需要每个客户端拥有的引用。