Unity,客户端对象销毁

时间:2017-07-26 09:55:40

标签: c# unity3d networking

嘿伙计,所以我遇到了通过网络摧毁对象作为客户端权利的问题所以我有一个拾取系统,你走到对象并捡起它们,当你拿起它们时,它们被添加到你的库存和项目在地上被摧毁。 现在,当您的服务器选择项目时,这一切都正常,但是当您的客户端只是简单地无法正常工作时,它只是将项目添加到您的库存中。 现在我一直看到的事情是如何让它成为一个命令它是一个命令而且似乎没有用,你正在与之交互的项目具有本地玩家权限并且已经注册并且玩家拥有本地玩家athority但它只是不起作用。这是我的剧本

.css()

我也用ClientRPC做了同样的事情(它是完全相同的代码,并且与命令同时调用) 但它仍然无法正常工作 感谢

1 个答案:

答案 0 :(得分:0)

如果您希望服务器销毁给定对象,首先必须在所有客户端的NetworkManager上注册为spawnable prefab,它必须具有NetworkIdentity,并且必须由服务器生成。

如果您已经有了这个,那么只需调用此函数:

    [Command]
    public void CmdDestroyObject(NetworkInstanceId netID)
    {
        GameObject theObject = NetworkServer.FindLocalObject (netID);
        NetworkServer.Destroy (theObject);
    }

其中netID是您要销毁的对象的NetworkInstanceId。