我有一个SteamVR Unity项目,我正在将其转换为多人游戏。 当另一位客户加入游戏时,不是两个不同的玩家看到对方,而是每个玩家都有自己的游戏版本,他可以控制所有玩家实例。 例如,当一个玩家连接时,一切都很好,但是当第二个玩家加入时,游戏仅添加了另一个由第一个玩家控制的Player预制件。 我尝试用一个简单的多维数据集替换Player,一切似乎都很好。 播放器和多维数据集都具有“光子变换视图”和“光子视图”脚本。 我将不胜感激。
答案 0 :(得分:1)
从PUN开始时,这是一个常见问题。您可能会设置具有网络同步功能的播放器预制板,并为每个播放器实例化该预制板。实例上的所有脚本都将作用于本地输入,这就是您现在看到的。 您需要预制的两个变体,分别用于本地和远程表示。由于始终配置两个预制件是不切实际的,因此您可以构建一个预制件来将其自身(在Awake或Start中)初始化为本地或远程。您的脚本应检查对象的PhotonView是否为.isMine。 可以按每个组件(在每个不同的脚本中)完成此操作,也可以添加一个组件,该组件根据isMine启用/禁用GameObject上的脚本。
例如