首页 > 解决方案 > 使用 Photon Unity Network(多人游戏)在 Unity 中实时同步

问题描述

我正在做一个演示项目,我在其中使用 Unity 3D 和 Photon Unity 网络 (PUN) 进行实时游戏。

这是一张图片

顶部面板中的人是一个敌方单位,由另一名玩家控制,该玩家对左下方的玩家造成伤害(左侧 1/3 hp)。但是,右下角的人是可以治疗左下角玩家(均由本地玩家控制)的治疗者。

这是我的问题!因为它不是基于回合的,并且必须实时发生。如何设计我的多人游戏系统?我以前做过回合制游戏,我只是在远程玩家中传递索引并镜像本地发生的事件。

但是这里的图片中有延迟,我不知道如何进行!我想做的是,让治疗者在被远程玩家攻击之前在本地以及远程玩家的手机上治疗玩家,或者在治疗者根据事件发生的时间戳治愈他的生命值之前杀死玩家并在两个设备上反映出来。

标签: c#unity3dservermultiplayerphoton

解决方案


我认为您对某些双关语网络功能感到困惑。

如果治疗者治愈了您的本地玩家,那么您的本地玩家的远程实例也会如此。当然,您的治疗系统必须联网,请确保您通过我们的基本教程来学习如何实施一个简单的健康系统。

https://doc.photonengine.com/en-us/pun/v2/demos-and-tutorials/pun-basics-tutorial/player-networking#health_synchronization

比健康管理稍微复杂一点的是本地玩家和治疗者之间的切换。为此,您有两个主要变体。

  1. 在玩家和治疗者之间转移所有权:https ://doc.photonengine.com/en-us/pun/v1/demos-and-tutorials/package-demos/ownership-transfer (这是一个 v1 演示,但原则仍然适用到 v2)

  2. 有一个隐形网络玩家,并在你的游戏中使用你自己的逻辑,让玩家匹配这个隐形网络玩家或治疗者匹配它。


推荐阅读