【问题标题】:RPC synchronization alternative MMORPG, Photon Unity3DRPC同步替代MMORPG、Photon Unity3D
【发布时间】:2014-11-25 15:43:02
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: networking unity3d synchronization rpc photon


    【解决方案1】:

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

    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)
    

    希望能帮到你

    【讨论】:

    • 你可以发送一个缓冲的 RPC 调用(保存迟到的信息)来更新迟到的玩家的信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-14
    • 1970-01-01
    • 2015-06-10
    • 2021-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多