0

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

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

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

我要问的是……我真的必须这样吗?还是有其他方法,更好或更简单的方法?

4

1 回答 1

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)

希望我能帮助你

于 2015-02-05T01:07:51.983 回答