我正在用光子双关语2制作一个多人每秒制游戏,并且一直在关注这个tutorial series by Rugbug Redfern。我正处于开始实现枪械机械和UI (弹药,健康等)的阶段,我有多人游戏,尽管我不完全理解双关语2的内部工作原理。
我的问题是,我试图让一个弹药计数器显示在玩家屏幕上,以显示他们还剩下多少弹药,当超过一个玩家加入游戏时,似乎有多个弹药计数器(见下图左下角),一个是原始玩家,另一个是新加入的玩家,尽管它不会更新,因为它不是跨网络同步的。这显然不好,我真的不知道该怎么办。我有一个玩家预制件,当一个新的玩家加入游戏时得到实例化,有一个UI画布和弹药计数器在该预制件以及。因此,当玩家的两个实例在同一场景中时,有2个画布,因此有2个弹药文本。我该如何确保只有一个,一个属于自己的玩家?单例实现可以工作吗?我是个新手,希望能帮上忙,谢谢!

发布于 2020-09-30 19:22:11
答:如果UI弹药计数器画布是玩家预置的一部分,只需停用其根GameObject,移除它或禁用画布或为远程玩家隐藏它。或者相反,只对本地播放器显示它:默认情况下,它是停用/禁用/隐藏,然后是活动/启用/取消隐藏。
如果你将用户界面的弹药计数器分离到它自己的预制件中,或者甚至让它成为场景的一部分,并在连接时启用/取消隐藏它。
简单地说,不要为远程玩家实例化UI弹药计数器预置。你可能是在OnPlayerEnteredRoom回调中这样做,或者在OnJoinedRoom回调中为所有之前加入的玩家做,不要这样做。
只需为本地播放器做一次,在OnJoinedRoom回调中。
https://stackoverflow.com/questions/64118063
复制相似问题