C# PUN 2 Unity多人FPS UI同步

C# PUN 2 Unity多人FPS UI同步,c#,unity3d,networking,multiplayer,photon,C#,Unity3d,Networking,Multiplayer,Photon,我正在用光子双关2制作一个多人FPS游戏,并且一直在关注这个。我正处于一个阶段,我开始实施枪械力学和UI(弹药,健康等),我有多人游戏,虽然我不完全了解双关2的内部工作原理 我的问题是,我试图在玩家屏幕上显示一个弹药计数器,以显示他们还有多少弹药,当超过一个玩家加入游戏时,似乎有多个弹药计数器(见下图左下角),一个是原始玩家,另一个是新加入的玩家[虽然它不会更新,因为它没有在网络上同步]。这显然不好,我真的不知道该怎么办。我有一个玩家预置,当一个新玩家加入游戏时会被实例化,预置中有一个UI画布和

我正在用光子双关2制作一个多人FPS游戏,并且一直在关注这个。我正处于一个阶段,我开始实施枪械力学和UI(弹药,健康等),我有多人游戏,虽然我不完全了解双关2的内部工作原理

我的问题是,我试图在玩家屏幕上显示一个弹药计数器,以显示他们还有多少弹药,当超过一个玩家加入游戏时,似乎有多个弹药计数器(见下图左下角),一个是原始玩家,另一个是新加入的玩家[虽然它不会更新,因为它没有在网络上同步]。这显然不好,我真的不知道该怎么办。我有一个玩家预置,当一个新玩家加入游戏时会被实例化,预置中有一个UI画布和弹药计数器。因此,当两个玩家的实例在同一场景中时,有两个画布,因此有两个弹药文本。我如何确保没有这里只有一个,一个自己的播放器?一个单例实现可以工作吗?我是新手,希望能得到任何帮助,谢谢


A.如果UI弹药计数器画布是玩家预置的一部分,只需停用其根游戏对象,移除或禁用画布,或为远程玩家隐藏。或者相反,仅为本地玩家显示:默认情况下,它是停用/禁用/隐藏的,然后是激活/启用/取消隐藏的

B.如果你将UI弹药计数器分离到它自己的预制件中,或者甚至使其成为场景的一部分,并在加入时启用/取消隐藏它

只是不要为远程玩家实例化UI弹药计数器预置。 您可能在OnPlayerEnteredRoom回调中执行此操作,或者在OnJoinedRoom回调中为所有以前加入的玩家执行此操作,但不要这样做

只需为本地玩家在OnJoinedRoom回调中执行一次