[使用Photon Unity Network(多人游戏)在Unity中进行实时同步

问题描述 投票:0回答:1

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

Here's an image

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

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

但是这里有延迟,我不知道该怎么办!我想做的是,让治疗者在受到远程玩家攻击之前,在远程玩家的手机上同时在本地治愈该玩家;或者在该玩家根据事件发生的时间治愈自己的hp之前杀死该玩家。并在两个设备上都反映出来。

c# unity3d server multiplayer photon
1个回答
0
投票

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

如果治疗者治愈了您的本地播放器,那么本地播放器的远程实例也将恢复。当然,您的康复系统必须联网,请确保您已通过基础教程学习了如何实施简单的健康系统。

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:拥有一个隐形网络播放器,并在您的游戏中使用自己的逻辑,让与该隐形网络播放器匹配的播放器或与之匹配的治疗者。

再见,

吉恩

© www.soinside.com 2019 - 2024. All rights reserved.