【问题标题】:PUN 2 Unity multiplayer FPS UI synchronisationPUN 2 Unity 多人 FPS UI 同步
【发布时间】:2021-01-14 23:22:09
【问题描述】:

我正在使用 Photon PUN 2 制作多人 FPS 游戏,并且一直在关注此 tutorial series by Rugbug Redfern。我正处于开始实施枪支机制和用户界面(弹药、生命值等)的阶段,并且我可以进行多人游戏,尽管我并不完全了解 PUN 2 的内部工作原理。

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

【问题讨论】:

    标签: c# unity3d networking multiplayer photon


    【解决方案1】:

    A.如果 UI 弹药计数器 Canvas 是玩家预制件的一部分,只需停用其根 GameObject,将其移除或禁用 Canvas 或为远程玩家隐藏它。或者相反,只为本地播放器显示它:默认情况下它是停用/禁用/隐藏,然后是激活/启用/取消隐藏它。

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

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

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

    【讨论】:

      猜你喜欢
      • 2021-08-16
      • 1970-01-01
      • 2015-06-10
      • 1970-01-01
      • 1970-01-01
      • 2021-12-06
      • 2016-05-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多