c# - 使用 Photon Unity Network(多人游戏)在 Unity 中实时同步
问题描述
我正在做一个演示项目,我在其中使用 Unity 3D 和 Photon Unity 网络 (PUN) 进行实时游戏。
顶部面板中的人是一个敌方单位,由另一名玩家控制,该玩家对左下方的玩家造成伤害(左侧 1/3 hp)。但是,右下角的人是可以治疗左下角玩家(均由本地玩家控制)的治疗者。
这是我的问题!因为它不是基于回合的,并且必须实时发生。如何设计我的多人游戏系统?我以前做过回合制游戏,我只是在远程玩家中传递索引并镜像本地发生的事件。
但是这里的图片中有延迟,我不知道如何进行!我想做的是,让治疗者在被远程玩家攻击之前在本地以及远程玩家的手机上治疗玩家,或者在治疗者根据事件发生的时间戳治愈他的生命值之前杀死玩家并在两个设备上反映出来。
解决方案
我认为您对某些双关语网络功能感到困惑。
如果治疗者治愈了您的本地玩家,那么您的本地玩家的远程实例也会如此。当然,您的治疗系统必须联网,请确保您通过我们的基本教程来学习如何实施一个简单的健康系统。
比健康管理稍微复杂一点的是本地玩家和治疗者之间的切换。为此,您有两个主要变体。
在玩家和治疗者之间转移所有权:https ://doc.photonengine.com/en-us/pun/v1/demos-and-tutorials/package-demos/ownership-transfer (这是一个 v1 演示,但原则仍然适用到 v2)
有一个隐形网络玩家,并在你的游戏中使用你自己的逻辑,让玩家匹配这个隐形网络玩家或治疗者匹配它。
推荐阅读
- sql - 选择查询中带有计数的内部联接
- android - 当视频视图处于全屏状态时,RecyclerView 被重新创建
- chapel - 浮点数的`writeln()`的输出精度
- matplotlib - 为 Jupyter 笔记本全局设置轴标签
- python - 使用子进程调用从 python 调用 fortran 可执行文件
- r - 替换矩阵元素时 foreach 不起作用
- python - 对没有内置或导入函数的数字进行排序以对列表进行排序或计算平均值
- python - 权证的 Pip 安装失败
- netlogo - Netlogo & Levelspace:如何在两个子模型之间传递字符串?
- pyqt5 - PyQt5 主窗口不会在 Raspberry 3B+ 上呈现(Raspian Stretch,Python 3.5)