RPC同步替代MMORPG,Photon Unity3D

时间:2014-09-30 21:38:09

标签: networking unity3d synchronization rpc photon

我正在使用Photon Unity Networking,我正在开发一个小游戏。

我到了一个地方,我有一个有玩家和小怪的房间。 当一个新的播放器出现时,我使用RPC调用将有关此播放器的信息更新到所有其他连接的用户以获得同步。 问题是......这个新玩家没有关于房间其他部分的任何信息(他的信息不是最新的)。 我的意思是例如当前其他玩家的健康状况,或当前的暴徒健康等等。

我提出的唯一解决方案是将RPC发送到主客户端,传递所有易失性对象并通过此更新将多个RPC调用发送回新播放器。

我要问的是......我真的必须这样吗?或者有没有其他方式,更好或更简单的方式?

1 个答案:

答案 0 :(得分:0)

好的,所以云台网络通过光子网络视图工作 - 其观察到的组件,意味着脚本 在这个观察到的剧本中你必须通过(如果是你的角色而你正在控制它)

m_PhotonView = GetComponent<PhotonView>(); //Variable
if( m_PhotonView.isMine == true ) //in Void Update()

使用SetSynchronizedValues()

所需的所有变量,位置,旋转,名称,运行状况,动画的相关数据等等
Variable = GetComponent<PhotonTransformView>();
Variable .SetSynchronizedValues( Position, Health , Name);

并且它将同步变量,然后你必须使用它们(显示名称,将对象设置到正确的位置,显示健康栏并调整大小),如果它只是一个非受控角色

if( m_PhotonView.isMine == false)

希望我能帮到你