私はオンラインゲームのためにチャットを行っています。これは、スクリプトと、テキストとウィンドウを描画するために必要なすべてを含むプレハブChatObjectで行われます。チャットには最後の30個のメッセージを含むSyncListStringが含まれていますが、これはサーバーからクライアントに同期されますが、それ以外の方法では同期されません。ユニティネットワークチャット、チャットを更新するコマンドを回避する必要があります
[Command]
void CmdUpdateChatAcross(string message)
{
UpdateChat(message);
RpcUpdateChat();
}
[ClientRpc]
void RpcUpdateChat()
{
UpdateChat("");
}
UpdateChat(「コマンドの作品である」統一引用)は、単純に新しいメッセージと同期リストを引き出します。 これは、クライアント認可を使用してチャットオブジェクトを生成できるので、現在、1つのサーバーと1つのクライアントで正常に動作します。クライアントは、サーバーバージョンのサーバーにコマンドを送信する許可が必要です。しかし、チャットオブジェクトの権限をすべてのクライアントに与える方法を理解していない(または確信しています)。
私はそれをしないのですか?別の方法をお探しですか?所有者を割り当てる機能はありますが、それがどのように機能するか、またはローカルバージョンに対してのみ権限を与えるかどうかはわかりません。私が仮定するように、私は複数の所有者を持つことはできません。
サーバーは問題なくすべてのクライアントにメッセージを送信できます。しかし、プレイヤーにメッセージをサーバーに正しく送信させることはできません。