(Unity + 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() 中的下一行并返回。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)