PUN 2 Unity多人FPSUI同步

PUN 2 Unity multiplayer FPS UI synchronisation

我正在使用 Photon PUN 2 制作一款多人 FPS 游戏,并且一直在关注这个 tutorial series by Rugbug Redfern。我正处于开始实施枪支机制和 UI(弹药、健康等)的阶段,并且我有多人游戏,尽管我并不完全了解 PUN 2 的内部运作。

我的问题是,我正在尝试在玩家屏幕上显示一个弹药计数器,以显示他们还剩多少弹药,当不止一个玩家加入游戏时,似乎有多个弹药计数器(见下图左下角)、一位原始玩家和一位新加入的玩家 [尽管它不会更新,因为它没有通过网络同步]。这显然不好,我真的不知道该怎么办。我有一个玩家预制件,当新玩家加入游戏时会实例化,该预制件中还有一个 UI Canvas 和弹药计数器。所以当玩家的两个实例在同一个场景中时,有 2 个 canvas,因此有 2 个弹药文本。我将如何确保只有一个,即自己的玩家之一?单例实现可行吗?我是新手,希望得到任何帮助,谢谢!

一个。如果 UI 弹药计数器 Canvas 是玩家预制件的一部分,只需停用其根游戏对象,将其移除或禁用 [​​=21=] 或为远程玩家隐藏它。或者相反,只对本地播放器显示:默认是 deactivated/disabled/hidden 然后是 active/enable/unhide。

乙。如果您将 UI 弹药计数器分离到它自己的预制件中,甚至使其成为场景的一部分,并且在加入时仅 enable/unhide 它。

不要为远程玩家实例化 UI 弹药计数器预制件。 您可能在 OnPlayerEnteredRoom 回调中这样做,或者在 OnJoinedRoom 回调中为所有以前加入的玩家这样做,不要。

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