使用 Photon Unity Networking 通过网络更快地发送 RPC 的方法

Way for faster RPC sending via network with Photon Unity Networking

我正在使用 Unity 和 PUN2 创建 2D 俯视射击游戏。我的问题是,RPC 调用花费了太多时间。我的示例是每当玩家被其他玩家的子弹击中(由 OnTriggerEnter2D 检测到)时,他将 RPC_message 发送给他被击中的其他玩家,这样他们就可以看到击中对他的影响(他降低的 HP 条)。在我看来,命中和降低 HP 条之间的时间太长,大约 1 秒。当玩家被多个玩家用多发子弹击中时,这会造成一些麻烦,这会降低游戏的动态性。有什么办法可以加快 RPC 函数调用的速度吗? 我的想法是使用对象同步来同步 hp 值,或者在碰撞检测中尝试这样做,但我不确定这是否足够有效。

您还没有通过 OnPhotonSerializeView:

发送带有 RPC.Just 同步健康的命中消息
public void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info)
{
    if (stream.IsWriting)
    {
        stream.SendNext(Health);
    }
    else
    {
        Health = (float)stream.ReceiveNext();
    }
}

我做了一个关于Photon for beginners in my github

的例子