(Unity + Mirror) 客户端不调用命令函数

时间:2021-07-17 06:20:09

标签: c# unity3d game-development mirror

我遇到了一个问题,即客户端无法在服务器上调用命令,但主机可以。 通常问题是 Unity 显示警告,“试图在没有权限的情况下为对象发送命令。”但是,编辑器在通话中没有显示任何调试,只是断开连接。 我有以下代码:

public class PickupManager:NetworkManager
{
    private void Update()
    {
        if (isPlayerInTrigger && Input.GetKeyDown(KeyCode.Q) && hasAuthority && isLocalPlayer)
        {
            requestObjectPickup();
            isPlayerInTrigger = false;
            objectinHand = false;
        }
    }    

    [Client]
    public void requestObjectPickup()
    {
        CmdPickUpObject();
    }

    [Server]
    private void pickUpObject()
    {
        NetworkServer.Destroy(pickupObject.gameObject);
    }

    [Command]
    private void CmdPickUpObject()
    {
        pickUpObject();
    }
}

这是它遵循的路径。我尝试在所有调用和函数本身内添加断点。 在调试模式下作为客户端运行时,代码不会转到 CmdPickupObject() 命令,而是转到 requestObjectPickup() 中的下一行并返回。

0 个答案:

没有答案