0

我有一个 NetworkManager 以服务器模式启动,使用StartServer,而不是 Host

在任何客户端连接之前,我将代码设置为:

public override void OnStartServer()
    {
        base.OnStartServer ();
        Debug.Log("// "  + name + " has netId: " + netId + "  assetId: " + GetComponent<NetworkIdentity>().assetId);
        InvokeRepeating ( "RpcCall", 2.0f, 10.0f );
    }

    [ClientRpc]
    public void RpcCall()
    {
        Debug.Log ( "// " + name + " Client called by server OK.  NetId: " + netId );
    }

我预计会失败,因为 ClientRpc 调用应该只发生在客户端上,而不是服务器上(除非它是主机)

这在此处进行了解释,我只是认为这是真的。我设置错了吗?

4

1 回答 1

0

我在写作时意识到了答案——如果你使用 Invoke 或 InvokeRepeating,UNET 就不起作用。无论您将其设置为什么,它都会在本地调用该函数。

于 2018-03-09T18:49:44.167 回答