Version: 2017.3
public static void SendToClient (int connectionId, short msgType, Networking.MessageBase msg);

参数

connectionId 客户端连接 ID。
msg 要发送的消息结构。
msgType 消息类型。

描述

将消息发送到拥有指定连接 ID 的客户端。

它将连接 ID 以及消息和 MsgType 作为参数来接受。记得要将客户端设置为使用 NetworkClient.RegisterHandler 接收消息。此外,对于用户消息,您所用的 MsgType 的 ID 编号必须高于 MsgType.Highest

//The code shows how to set up a message, the MsgType and how to get the connectionID.
//It also shows how to send the message to the client, as well as receive it.
//Attach this script to a GameObject

using UnityEngine; using UnityEngine.Networking; using UnityEngine.Networking.NetworkSystem;

//Create a class for the message you send to the Client public class RegisterHostMessage : MessageBase { public string m_Name; public string m_Comment; }

public class Example : NetworkManager { RegisterHostMessage m_Message; //This is the Message Type you want to send to the Client. User messages must be above the Highest Message Type. public const short m_MessageType = MsgType.Highest + 1;

//Detect when a client connects to the Server public override void OnServerConnect(NetworkConnection connection) { //Change the message to read the Player's connection ID and a comment EditMessage("Player " + connection.connectionId, "Hi there."); //Send the new message to the Client using the Server NetworkServer.SendToClient(connection.connectionId, m_MessageType, m_Message); }

//On the Client's side, detect when it connects to a Server public override void OnClientConnect(NetworkConnection connection) { //Register and receive the message on the Client's side client.RegisterHandler(m_MessageType, ReceiveMessage); }

//Use this to edit the message to read what you want void EditMessage(string myName, string myComment) { m_Message = new RegisterHostMessage(); //Change the message name and comment to be the ones you set m_Message.m_Name = myName; m_Message.m_Comment = myComment; }

//Use this to receive the message from the Server on the Client's side public void ReceiveMessage(NetworkMessage networkMessage) { //Read the message that comes in RegisterHostMessage hostMessage = networkMessage.ReadMessage<RegisterHostMessage>(); //Store the name and comment as variables string receivedName = hostMessage.m_Name; string receivedComment = hostMessage.m_Comment;

//Output the Player name and comment Debug.Log("Player Name : " + receivedName); Debug.Log("Player Comment : " + receivedComment); } }