0

Host ではなくStartServerを使用して NetworkManager をサーバーモードで開始しました

クライアントが接続する前に、次のようにコードを設定します。

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 に答える