ClientRpc-function获取两次调用

时间:2016-12-19 16:51:43

标签: networking unity3d

我认为我没有正确理解Unity Networking,因此这个问题。

当我的播放器死机时,我会在die() - 函数内调用脚本CmdSetScore,然后通过服务器调用它,然后再回到所有客户端:

public void Die() {
    CmdSetScore(playerID, 1);
}
[Command]
public void CmdSetScore(string _playerID, int _score) {
    Player _player = GameManager.GetPlayer(_playerID);
    _player.RpcSetScore(_score);
}
[ClientRpc]
public void RpcSetScore(int _score) {
    if (!isLocalPlayer) {
        return;
    }
    score += _score;
    [...]

问题是RpcSetScore被调用两次。 我的论点是因为我在游戏中有两个玩家,它被叫了两次,但是有三个玩家,它仍被叫两次。

它只发生在客户端。当在服务器端死亡时,它只被调用一次。

如何只调用一次函数?

0 个答案:

没有答案