1

私は、マルチプレイヤー (UNET) 環境で印刷するコマンドを送信する UI ボタン​​を持つような単純なことに取り組んでいます。これまでに行ったことを考えると、これは簡単だと思いましたが、完全に行き詰まり、混乱しています。

テストするために新しいプロジェクトを作成しましたが、まだこれを機能させることができません。ボタンの onClick を生成してトリガーすることができますが、「権限のないオブジェクトにコマンドを送信しようとしています」というメッセージが表示されます。キャンバスとボタンをプレハブとして使用し、以下のスクリプトをキャンバス プレハブにアタッチしてから、キャンバスをボタンの OnClick プロパティにアタッチしました。

using UnityEngine;
using UnityEngine.Networking;
using System.Collections;

public class NM_Script : NetworkBehaviour {

public void DoButton() {

    Cmd_Print ();
}

[Command]
void Cmd_Print() {
    print ("HIT");
}
}

さまざまなテストをすべて行った後、私は「おそらく」木が原因で森が見えないという点に達し、かなりイライラしています。解決策はシンプルで明白であり、解決できるはずですが....

誰かがこれを一度解決するのを手伝ってくれたら本当にありがたいです。

4

1 に答える 1

0

UNET 文書から、

セキュリティのため、コマンドは自分のプレイヤー オブジェクトからのみ送信できます。

Unity リリース 5.2 から、クライアント権限を持つ非プレイヤー オブジェクトからコマンドを送信できるようになりました。これらのオブジェクトは、NetworkServer.SpawnWithClientAuthority で生成されているか、NetworkIdentity.AssignClientAuthority で権限が設定されている必要があります。これらのオブジェクトから送信されたコマンドは、クライアントの関連付けられたプレーヤー オブジェクトではなく、オブジェクトのサーバー インスタンスで実行されます。

于 2016-10-20T07:57:39.703 に答える