Unity UNET - 服务器(非主机)自己调用[ClientRpc]

时间:2018-03-09 18:49:44

标签: unity3d unity3d-unet unet

我在服务器模式下启动了NetworkManager,使用StartServer,而不是主机

在任何客户端连接之前,我设置我的代码来执行此操作:

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调用应该只发生在客户端上,而不是服务器上(除非它是主机)

这是here的解释,我刚认为是真的。我设置错了吗?

1 个答案:

答案 0 :(得分:0)

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