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