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

问题描述 投票:0回答:1

我正在使用Unity和PUN2创建2D自上而下的射击游戏。我的问题是,RPC调用花费了太多时间。我的例子是当玩家被其他玩家子弹击中(由OnTriggerEnter2D检测到)时,他将RPC_message发送给他被击中的其他玩家,因此他们可以看到击中他的效果(他已经减少的HP栏)。在我看来,打击和拆除HP栏之间的时间太长,大约1秒钟。当玩家被多个子弹击中时,这会导致一些麻烦,这会让游戏变得不那么活跃。是加速RPC函数调用的方法吗?我的想法是使用对象同步来同步hp值,或者在碰撞检测时尝试这个,但我不确定这是否足够有效。

unity3d networking 2d rpc photon
1个回答
2
投票

你没有用RPC发送命中消息。使用OnPhotonSerializeView同步健康:

public void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info)
{
    if (stream.IsWriting)
    {
        stream.SendNext(Health);
    }
    else
    {
        Health = (float)stream.ReceiveNext();
    }
}

我为Photon for beginners in my github做了一个例子

© www.soinside.com 2019 - 2024. All rights reserved.