Networking RPC同步替代MMORPG,光子Unity3D

Networking RPC同步替代MMORPG,光子Unity3D,networking,unity3d,synchronization,rpc,photon,Networking,Unity3d,Synchronization,Rpc,Photon,我正在使用光子联合网络,我正在做我的一个小游戏 我到了一个地步,我有一个房间与球员和暴徒。 当一个新的播放器出现时,我使用RPC调用将有关该播放器的信息更新给所有其他连接的用户以获得同步。 问题是。。这个新玩家没有关于房间其他部分的任何信息(他的信息不是最新的)。 我的意思是,例如,其他玩家的当前健康状况,或者暴徒的当前健康状况,等等 我提出的唯一解决方案是向主客户机发送一个RPC,遍历周围的所有易失性对象,并通过此更新将几个RPC调用发送回新的播放器 我想问的是。。。我真的要这样做吗?或者还有

我正在使用光子联合网络,我正在做我的一个小游戏

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

我提出的唯一解决方案是向主客户机发送一个RPC,遍历周围的所有易失性对象,并通过此更新将几个RPC调用发送回新的播放器


我想问的是。。。我真的要这样做吗?或者还有其他更好或更简单的方法吗?

好的,那么phonton网络通过光子网络视图工作-及其观察到的组件,意味着脚本 在这个观察到的脚本中,您必须通过(如果它是您的角色,并且您正在控制它)


希望我能帮助你

你只需发送一个缓冲的RPC呼叫(保存延迟到达的信息)就可以将信息更新给延迟到达的玩家。
m_PhotonView = GetComponent<PhotonView>(); //Variable
if( m_PhotonView.isMine == true ) //in Void Update()
Variable = GetComponent<PhotonTransformView>();
Variable .SetSynchronizedValues( Position, Health , Name);
if( m_PhotonView.isMine == false)